配置一个SpringConfiguration 该类和bean.xml是一样的:
Configuration:
- 作用:指定当前类是一个配置类
- 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写 。
ComponentScan:(定义在类上)
- 作用: 用于通过注解指定spring在创建容器时要扫描的包
- 属性: value:它和basePackages的作用时一样的.都是用于指定创建容器时要扫描的包.使用了此注解就和bean.xml中配置:
<--xml中-->
<context-component-scan base-package="com.itcast"></context:component-scan>
Bean:
- 作用:用于把当前方法的返回值作为bean对象存入spring的ioc中
- 属性:name:用于指定bean的id.当不写时,默认值时当前的名称
- 细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。查找的方式和Autowired注解的作用时一样的
Import:
- 作用:用于导入其它的配置类
- 属性:value:用于指定其他配置类的字节码,当我们使用Import的注解之后,有Import注解的类就时父配置类,而导入的都是子配置类.
propertySource:
- 作用:用于指定properties文件的位置,关键字classpath,表示类路径下!
- 属性:value:指定文件的名称和路径,
@Qualifier()可以定义在属性前面指定,在多个实现类中,指定是哪个实现类
* 使用Junit单元测试:测试我们的配置
- Spring整合junit的配置
-
1、导入spring整合junit的jar(坐标)
-
2、使用Junit提供的一个注解把原有的main方法替换了,替换成spring提供的@Runwith
-
3、告知spring的运行器,spring和ioc创建是基于xml还是注解的,并且说明位置@ContextConfiguration
-
locations:指定xml文件的位置,加上classpath关键字,表示在类路径下
-
classes:指定注解类所在地位置
- 当我们使用spring 5.x版本的时候,要求junit的jar必须是4.12及以上
例如
@Runwith(SpringJUnit4ClassRunner.class)//导入整合junit的jar
@ContextConfiguration(classes=SpringConfiguration.class)//告知spring是注解配置