本文内容:基于注解的IOC配置
一、 基于注解的配置中,我们需要查看是否存在aop的jar包
二、 常用注解介绍
1. @Component:
作用:把资源交给Spring管理,相当于xml中的一个bean
属性:
①. value:相当于bean的id,如果不指定value属性,默认为当前类名的首字母小写
2. @Controller @Service @Repository
作用:这三个注解都是@Componet注解的衍生注解,它们的作用和属性与@Componet是一样的,只是提供了更加明确的使用位置
详解:
①. @Controller:用在表现层的注解
②. @Service:用在业务层的注解
③. @Repository:用在持久层的注解
3. @Autowired
作用:自动按照类型注入,它只能注入其它bean类型,当有多个类型匹配时,使用要注入对象变量名称作为bean的id在Spring容器中查找
细节:当使用注解注入属性值,set方法可以省略
4. @Qualifier:
作用:在自动按照类型注入的基础上,再按照bean的id注入,它在给字段注入时不能独立使用,必须和@Autowired一起使用,但是给方法参数注入时,可以独立使用
属性:
①. value:指定bean的id
5. @Value:
作用:注入基本数据类型和String类型的数据
属性:
①. value:用于指定数据的值
6. @Scope:
作用:指定bean的作用范围
属性:
①. value:指定取值范围的值
取值: singleton(单例)、prototype(多例)、request、session、globalsession
三、新注解介绍
1. @Configuration:
作用:用于指定当前类是一个Spring的配置类,当创建容器时会从该类上加载注解(此时在获取容器时需要使用 new AnnotationApplicationContext(有@Configuration注解的类.class))
2. @ComponentScan:
作用:在Spring初始化容器的时候,需要扫描的包
3. @Bean:
作用: 此注解只能写在方法上,表明使用此方法创建一个对象,并且放入Spring容器中
属性:
①. name:给当前注解创建出来的对象指定一个名称(即bean的id)
4. @PropertySource:
作用:用于加载.properties文件中的配置(如:数据库的配置文件)
属性:
①. value[]:用于指定properties文件的位置,如果是在类路径下,需要写上classpath:
5. @Import:
作用:用于导入其它配置类
属性:
①. value[]:用于指定其它配置类的字节码
四、使用Spring整合Junit的注解
- 使用在pom.xml需要导入spring-test的坐标(依赖关系)
- 注解介绍
1. @RunWith:替换原注解运行器(@RunWith(SpringJUnit4ClassRunner.class))
2. @ContextConfiguration:指定 spring 配置文件的位置
属性:
①.locations 属性:用于指定配置文件的位置。如果是类路径下,需要用 classpath:
②. classes 属性:用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置
3. @Autowired 给测试类中的变量注入数据