Spring-IOC注解

注解主要的目的就是实现零XML配置。
一:自动扫描装配Bean。
spring为咱们引入了组件自动扫描机制,它能够在类路径底下寻找标注了@Component、@Service、@Controller、@Repository注解的类,并把这些类归入进spring容器中管理。它的做用和在xml文件中使用bean节点配置组件是同样的。
1)@Component 将java类标记成一个Spring Bean组件。java

2)@Service  将业务层实现类标记成一个Spring Bean组件。spring

3)@Controller  将表现层类标记成一个Spring Bean组件。session

4)@Repository 将一个持久层实现类标记成一个Spring Bean组件。ui

均拥有value属性,能够取名字;若是没有取名字,默认为类名首字母小写。prototype

二:做用域用scope来指定xml

用来指定bean的做用域对象

singleton---单例  只建立一个对象。作用域

prototype---原型  想建立多少个就建立多少了。原型

request---针对Web项目,不一样的请求建立单独的Bean对象,同一个请求共享一个Bean。it

session---针对Web项目,不一样的会话建立单独的Bean对象,同一个会话共享一个Bean。

三:自动装配(@Autowired)与精确装配

@Autowired注解是按类型装配依赖对象,默认状况下它要求依赖对象必须存在,若是容许null值,能够设置它required属性为false。

一、配置在属性上;

二、配置在set方法上;

三、配置在构造方法上。

 

自动装配中了解这两个就差很少了

1:byName在容器中寻找和须要自动装配的属性名相同的Bean

2:byType在容器中寻找和须要自动装配的属性类型相同的Bean

@Qualifier配合@Autowired使用。

把按类型配置变为按名称匹配

 一、配置在属性上;

二、配置在set方法上;

三、配置在构造方法的参数上。

@Resource  (这个注解是最强的)

@Resource注解默认按名称装配。名称能够经过name属性指定,若是没有指定name属性,默认取属性的名称做为bean名称寻找依赖对象。

注意:若是没有指定name属性,而且按照默认的名称找不到依赖对象时,@Resource会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

一、配置在属性上;

二、配置在set方法上。

相关文章
相关标签/搜索