发表于: 2017-07-07 22:19:29
2 1066
今天完成的事情:
1. @Resource认识了解
作用@Autowired类似
@Resource默认按名称进行装配,
当找不到与名称匹配的bean才会按类型装配
2 .初步了解spring + junit
已经有了大致思路
3. 补基础,接口和类
明天计划的事情:
1. 学习spring + junit
两个东西都学过了,打算试试自己写一下
2. 接着补一补基础
遇到的问题:
1.发现了一个博客的教程写错了,被误导了。
@Resource的setxx依赖注入只需要有setxx方法,而依赖构造方法,不需要setxx
收获:
1. @Autowired启用:
必须注册“AutowiredAnnotationBeanPostProcessor'
1. 添加 Spring 上下文和<context:annotation-config />在bean配置文件中。
2. 直接在bean配置文件包含“AutowiredAnnotationBeanPostProcessor”。
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
2. @Resource装配方法
默认按名称进行装配,
当找不到与名称匹配的bean才会按类型装配
可以标注在字段或者属性的setter方法
可以指定分是name和type
①. 同时指定了name和type,
从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
②. name属性指定;
从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
③. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,
找不到或者找到多个,都会抛出异常
④. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;
4.1 如果没有指定name属性,
当注解标注在字段上,即默认字段的名称作为bean名称寻找依赖对象;
4.2 注解标注在属性setter方法上,
即默认取type(属性名)作为bean名称寻找依赖对象
⑤. 当找不到与名称匹配的bean时才按照类型进行装配(相当于@Autowired)
3 @Autowired默认类型装配依赖对象
如果想使用名称装配,结合@Qualfier注解一起使用
@Autowired@Qualifier("spellChecker")
PS: 还有两天就结业考试了,本学期最后一门考试。
评论