spring注入主要有三种方式:在XML文件中进行显示配置;在java中进行显示配置;隐式的bean发现机制和自动装配(即自动注入)。对于这三种方式,按喜好程度排序:自动配置>javaconfig>XML。
这篇博客主要是简短的总结今天学习的自动注入spring从两个角度来实现自动注入,一是组件扫描(component scanning),二是自动装配(autowiring)。其实施流程是:
1.创建配置类
在我们组件类的声明上添加@Component注解,这个注解将会通知Spring创建这个类的bean,无需显示配置该类的bean,Spring会把这件事处理妥当。默认情况下,该bean的id就是类名的第一个字母小写。如果你想重新命名,只需在注解后添加(“新名”)。
2.组件扫描
在配置类中的声明上添加@ComponentScan注解,这个注解会启用组件扫描,默认情况下会去扫描与配置类同包的所有类。如果要扫描其他包,可在注解后添加(“包名”)或者(basePackages=“包名”),如果多个基础包则是(basePackages={“包名1”,“包名2”,……})
3.自动注入
在配置类中需要注入组件类的地方(构造器和Setter方法)前添加@AutoWired注解,该注解将会把同依赖需求匹配的bean注入给配置类。如果有多个被匹配的时候,Spring会抛出一个异常。如果没有一个匹配到的时候,也会抛出一个异常,添加(required=false)虽能解决这个问题,但要谨慎使用,否则会报空指针异常。