- 如何去除Spring核心配置xml文件----使用配置类的形式(也就是"纯注解"开发)
"完全使用纯注解开发,配置的效率并没有提高"
"开发中根据实际情况,怎么方便怎么来"
1.Configuration和ComponentScan注解
Configuration
作用:指定当前类是一个配置类
ComponentScan
作用:指定Spring在创建容器的时候要扫描的包
属性:
value
basePackages
"以上两个属性都是指定创建容器的时候要扫描的包"
2.Bean
Bean
作用:
用于把当前方法的返回值当做bean对象存入spring的ioc容器中
属性:
name
用于指定bean的id,当不写时,默认是当前方法的名称
细节:
当我们使用注解配置方法时,如果方法有参数,spring框架会去spring容器中查找有没有可用的bean对象,"查找的方式和Autowired一样"
3.AnnotationConfigApplicationContext
这个时候获取Spring容器的时候不能是核心配置文件的xml了
而是使用核心配置类的字节码文件
"这样核心配置文件的xml文件彻底消失"
4.Import注解
Import:
作用:导入其他配置类的字节码文件
属性:
value:
@Import(JdbcRowSet.class)
当使用Import注解的时候,有Import的类就是父配置类,而导入的都是子配置类
5.PropertySource注解
PropertySource
作用:
用于指定properties文件的位置
在核心配置类中通过springEL使用,properties文件中的属性值
属性
value
指定properties的路径
关键字:
classpath
表示文件在类路径下
6.Qualitier注解
当一个对象有多个实现类的时候,可以通过Qualitier注解进行筛选
"有的注解可以在方法中使用,比如这个注解就可以在入参上使用"
7.Spring整合Junit的问题
Junit中main方法识别不了Spring中的注解
如果使用getbean获取属性,提取出共有代码后,测试人员不一定能看懂
8.Spring整合Junit的配置
Spring整合Junit的配置
1.导入spring整合Junit的jar
2.使用Junit提供的注解把原来的main方法替换掉,替换成spring提供的
@Runwith
3.告知spring的运行期,spring和IOC穿件是基于xml还是注解的,并且说明位置
@ContextConfiguration
属性:
location:
指定xml文件的位置,加上classpath关键字,表示在类路径下
classes
指定注解类所在位置
"当我们使用spring5.x版本的时候,Junit版本必须是4.12以上"