@Autowired和@Resource

来源:互联网 发布:常用的网络端口号 编辑:程序博客网 时间:2024/05/17 07:06

@Autowired默认按照类型进行注入

@Autowired @Qualifier("personDaoxxx")这样就是按照名称进行装配

@Autowired(required=true)必须注入值,不能为null,为false无论注入什么值都是null


autowire属性取值如下:

byType:按类型装配,可以根据属性的类型,在容器中寻找根该类型匹配的bean.如果发现多个,那么将会抛出异常。如果没有找到,即属性值为null。

byName:按名称装配,可以根据属性的名称,在容器中寻找根该属性名相同的bean,如果没有找到,即属性值为null。

Constructor与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。

Autodetect:通过bean类的自省机制来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式。


@Resource默认是按照名称进行装配,找不到才会按照类型查找

当使用省略name属性的@Resource修饰实例变量时,name属性值默认与该实例变量同名。

例如:使用@Resource标注name实例变量,则Spring默认会注入容器中名为name的组件。

0 0
原创粉丝点击