day03(上)-Spring 中的新注解及 Spring 整合 Junit

5 篇文章 0 订阅

Spring 中的新注解

@Configuration

作用:指定当前类是一个配置类
细节:当配置类作为 AnnotationConfigurationApplicationContext 对象创建的参数时,该注解可以不写

@ComponentScan

作用:用于通过注解指定 Spring 在创建容器时要扫描的包
属性:
	value : 它和 basepackages 的作用是一样的,都是用于指定创建容器时要扫描的包

使用此注解就等同于在 xml 中配置了:

<context:component-scan base-package="com.greyson"></context:component-scan>

@Bean

作用:用于把当前方法的返回值作为 bean 对象放入 Spring 的IOC容器中
属性:
name : 用于指定 bean 的 id,当不写时,默认值为当前方法的名称
细节:当我们使用注解配置方法时,
		如果方法有参数,Spring 框架会去容器中查找有没有可用的 bean 对象,
		查找的方式和 Autowired 注解的作用是一样的

@Import

作用:用于导入其他的配置类
属性:
	value : 用于指定其他配置类的字节码
当我们使用 Import 的注解之后,有 Import 注解的类就是父配置类,而导入的都是子配置类

@Properties

作用:用于指定 properties 文件的位置
属性:
	value : 指定文件的名称和路径
		关键字:classpath , 表示类路径下

Spring 整合 Junit

为什么Spring 要整合 Junit?

  1. junit不会管是否采用spring框架,在执行测试方法时,junit根本不知道是不是使用了spring框架,所以也不会去读取配置文件和配置类来创建spring核心容器。
  2. 因此,当测试方法执行时,没有IoC容器,就算写了Autowired注解,也无法实现注入。

Spring 整合 Junit 的配置过程

  1. 导入 Spring 整合 Junit 的 jar ( 坐标 )

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.1.1.RELEASE</version>
        <scope>test</scope>
    </dependency>
    
  2. 使用 Junit 提供的一个注解把原有的 main 方法替换成 Spring 提供
    @Runwith
    在Test类上注解,参数为Spring提供的继承了Runner的类,eg.SpringJUnit4ClassRunner.class

  3. 告知 Spring 的运行器, Spring 的 ioc 创建是基于 xml 还是注解的,并且说明位置,用到的注解如下
    @ContextConfiguration

     在Test类上注解
     Locations : 指定 xml 文件的位置,加上 classpath 关键字,表示在类路径下
     classes : 指定注解类所在地位置
    

    当使用 Spring 5.x 版本的时候,要求 JUnit 的 jar 必须是4.12及以上

  4. 使用@Autowired 给测试类中的变量注入数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值