spring 的注解注入有两种情况:第一种是配置文件引用注解,第二种是配置类引用注解
ioc常用的注解
标志bean的注解
上面4个注解的作用都是标志类的 bean id,其中第4个注解标志的是Dao、service、controller层的类,一般用在不确定类所处的层级使用,而其他3分别对象mvc的3层。这样就能够使得我们在维护和操作时能够更加的简单。
标志Dao层
标志service层
如果把注解都更换成Component,代码执行的功能相同,但是在维护的时候更费力,所以一般都是使用对应的注解进行标识。
注入属性的注解
@Autowired(不用填入参数) 和 @Qualifier (填入的参数为 bean 的 id)
这两个注解一般同时使用。代表着通过属性的类型和属性的名称在spring容器中自动导
@Resource注解(这个注解的参数可以传入一个数组,里面的值为 bean 的 id)
该注解可以取代 @Autowired 和 @Qualifier 的共同使用,用于简化代码
@Value注解(使用在基本数据类型之上,参数为传入的值)
不过这个注解一般不这样使用,一般我们通过这个注解读取配置信息,然后再通过SpEL去注入,所以它一般跟@PropertySource 注解一起使用
@PropertySource 注解(参数为配置信息的 path )
我们如果使用读取配置信息的注解使用Value注解时,我们呢一般通过spring的El表达式去传入值给value
配置类的注解
@Configuration 注解 (没有参数)
这个注解的作用是标识我们的类为配置类,每一个配置类都需要有这个标识
@ComponentScan 注解 (参数为注解扫描的包的路径)
这个注解跟 Configuration 注解一样,再配置类都需要标识
@Import 注解 (参数可以存放数组,数组元素的类型是一个 Class 对象)
这个注解用来引入另外的注解,我们再 spring 的配置类中,只有一个总的配置类,其他的模块配置类需要导入再总配置类中。
其他注解
@Bean 注解 (参数为设置bean 对象的 id 值)
在单例的模式中或者需要返回一个对象的方法中,我们使用这个方法可以将我们需要返回的对象直接的储存在 spring 容器中,并且给这个对象一个唯一标识 id
剩下的注解就不再说明了
配置文件引入注解依赖
使用配置文件引入注解时,需要在默认创建的配置文件上添加语句
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
添加之前
添加之后
在添加完成之后需要设置包扫描的位置
使用 context:component-scan 标签添加
在这之后我们的spring就会识别到我们的注解,使用这个方法我们实例化的 ApplicationContext 是他的一个实现类ClassPathXmlApplicationContext ,在它的构造器中需要传入我们的xml文件的path
配置类引入注解依赖
配置类引入注解依赖其实在上面的配置类注解上已经说完了,只是在实例化的时候需要注意他实例化的是 AnnotationConfigApplicationContext ,它的构造器传入的参数是配置类的一个 Class 对象