1.@Autowired:用于注入数据的
它们的作用就和在xml配置文件中的bean标签中写一个<property>标签的作用是一样的
此注解先在扫描的bean中匹配class类,没有就找id ,找到全局唯一的就编译正确,否则错误,即有多个值或者没有就会报错
2.@Qualifier:
当有多个值或者没有值时,此时就需要它来进行指定 配合@Autowired注解一起使用
3.@Resource
直接按照bean的id名称注入。如果id属性不存在,可以再按照类型注入。它可以独立使用
属性 name:用于指定bean的id,如果指定name,只能按照bean的id注入,不能按照类型注入
以上三个注入都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现(使用@Value)
4.@Configuration
表示该类是一个配置类,它的作用和applicationContext.xml是一样的
当配置类作为AnnotationConfigApplicationContext对象创建时,该注解可以不写。
public class MyConfigration {
}
5.@ComponentScan
作用:用于通过注解指定spring在创建容器时要扫描的包
相当于:<context:component-scan base-package="com.itheima"></context:component-scan>
6.@Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:
name:用于指定bean的id。当不写时,默认值是当前方法的名称
依赖注入细节:
我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象,如果有bean对象,
将对象通过方法的形参注入到方法中使用。==查找的方式和Autowired注解的作用是一样的==
7.@PropertySource
作用:用于指定properties文件的位置
属性:
value:指定文件的名称和路径。
关键字:classpath,表示类路径下
8.AnnotationConfigApplicationContext 当配置类作为AnnotationConfigApplicationContext对象创建的参数时,@Configuration注解可以不写
9.@Import 作用:用于导入其他的配置类 value:用于指定其他配置类的字节码
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类 相当于applicationContext.xml中的<import resource=””>
10.@PropertySource 作用:用于指定properties文件的位置
属性:
value:指定文件的名称和路径。
关键字:classpath,表示类路径下
11.@Qualifier注解 作用:如果spring容器中出现了多个数据源类型,使用该注解指定注入的数据源
12.@Runwith Junit提供的一个注解把原有的main方法替换了,替换成spring提供的
13.@ContextConfiguration ocations:指定xml文件的位置,加上classpath关键字
@ContextConfiguration(locations = "classpath:applicationContext.xml")