文章目录
2.1 Spring原始注解
代码
之前是在applicationContext.xml中配置bean
现在还没有和web层集成,因此弄一个假的web层(控制台输出):
然后使用注解替代bean
等价于
等价于@Component(“userService”)
等价于
- 测试,发现报错
原因:需要配置组件扫描
然后spring就可以帮我们完成解析及注入了
再次测试,成功
不同层使用不同的实例化Bean的注解(@Component)
@Controller、@Service、@Repository和@Component功能一样,只不过可读性强一些,用在不同层上
注入引用类型(@Autowired + @Qualifier \ @Resource)
使用注解可以把set方法删掉,注解可以直接使用反射进行赋值
变为
但是使用xml配置时不可以删掉set方法
1. 只使用@Autowired(按照数据类型匹配)
还可以把@Qualifier("userDao")
注释掉
当只使用@Autowired
时,他会按照数据类型从Spring容器中进行匹配
这里的数据类型是UserDao,而在此之前,Spring容器中已经有了"userDao"
如果容器中有多个UserDao
类型的bean,那么只使用@Autowired
就不行了
2. 使用@Autowired+@Qualifier(按照名称匹配)
3. @Resource相当于@Autowired+@Qualifier
注入普通数据类型(@Value)
使用properties文件进行赋值:
@Scope
@PostConsruct / @PreDestory
小结
2.2 Spring新注解
创建一个配置类
等价于
但是< bean >中的value不是写死的
把跟数据源有关的放到DataSourceConfiguration.java中
这样注解就完美的替代了xml文件
修改测试: