spring常用注解解析
这些注解很多不用就忘了,写篇博客记录一下
1. 一切的开始 @Configuration
spring通过加载带有Configuration注解的类来初始化容器(BeanFactory)
ApplicationContext app = new AnnotationConfigApplicationContext(带有configuration注解的类);
2. 指定包去扫描 @ComponentScan
加在带有configuration注解的类上边,如果注解不带参数,默认扫描当前包
也可以加入像这样的参数
@ComponentScan("basepackage")
@ComponentScan(basepackage = "name")
@ComponentScan(Class)
3. 标记类@Component
将类标记后,如果该类被容器扫描到就会加入到容器中.
4. 自动注入 @Autowired
可以添加到属性,方法上,甚至可以添加到方法的参数上.
但是有个问题就是,他是根据class在容器中进行查找,所以在多态情况下,如果出现了重复,就会抛异常
解决办法是如果注入在属性上,可将属性名改成对应的bean name,因为他会先按照class匹配,再按照属性名和bean名匹配
也可以通过一下两个注解解决冲突问题
5. @Primer
标注在带有Component的类上,意思是提升该类的优先级,在发生冲突的时候优先选择此对象.
6. @Qualify
参数填beanname,.从而俺名字查找到bean