1、修改 PresonServiceImpl 类,代码如下:

 

在前面学习中知道 @Autowired 默认按类型装配,在xml 文件中会找到与 PresonDao 该类型匹配的 bean ,然后将 找到的 bean 注入到 presonDao 中。

2、单元测试类,代码如下:

 

3、XML 文件不变,与之前的一样。

4、如果我们想使用按名称装配,可以结合@Qualifier注解一起使用,代码如下:

@Autowired @Qualifier("personDao1")
private PresonDao presonDao;

不再做具体的测试。

5、@Autowired注解,它有个 required 属性,默认情况下该属性值为 true ,即 @Autowired(required=true),表示依赖对象必须存在;如果允许null值,可以设置它required属性为false。

6、自动装配依赖对象:

<bean id="..." class="..." autowire="byType"/>
autowire属性取值如下:

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

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

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

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

posted on 2013-11-26 23:13  hwlsniper  阅读(2375)  评论(0)    收藏  举报