SpringBoot工程IOC容器的获取以及test测试包疑难问题

本文介绍了如何在SpringBoot项目中通过依赖注入获取IOC容器,以及在test包下的测试中遇到的版本兼容问题,重点讲解了如何使用@SpringBootTest和@RunWith(SpringRunner.class)注解来正确加载和测试Spring应用程序上下文,避免因版本冲突导致的bean注入问题。
摘要由CSDN通过智能技术生成

SpringBoot工程IOC容器的获取

方式一:

SpringBoot项目启动时会创建一个ioc容器

 可以通过依赖注入的方式获取ioc容器

方式二:

实现ApplicationContextAware接口,通过重写里面的setApplicationContext()方法获取容器和Bean

test测试包疑难问题

在test包下做测试时,

spring-boot-starter-parent可能会与其他依赖如spring-boot-starter-test、junit等出现版本不兼容的情况(引入了spring-boot-starter-test依赖就无需在引用junit依赖,否则出现冲突可能导致未知错误),导致一些未知错误,如无法注入ioc容器bean对象等。此时需要改变版本

在旧版本的JUnit,spring-boot-starter-test环境下做测试能需要在类上指定测试运行器以及

指定要加载的 Spring Boot 主应用程序类

@RunWith(SpringRunner.class)                 ---@Runwith注解在JUnit5被废弃

@SpringBootTest(classes = AppServerApplication.class) 

注解说明:

  1. @SpringBootTest(classes = AppServerApplication.class)

    • @SpringBootTest 是 Spring Boot 提供的一个注解,用于在测试中加载 Spring 应用程序的上下文。它会自动搜索主配置类(通常是带有 @SpringBootApplication 注解的类),并加载整个 Spring 应用程序上下文。
    • classes = AppServerApplication.class 部分指定了要加载的 Spring Boot 主应用程序类。在这个例子中,AppServerApplication.class 是主配置类的类对象,用于告诉 @SpringBootTest 注解加载该类所在的 Spring 应用程序上下文。
  2. @RunWith(SpringRunner.class)

    • @RunWith 是 JUnit 提供的一个注解,用于指定测试运行器。SpringRunner.class 是 Spring 提供的测试运行器,它会在测试执行之前初始化 Spring 应用程序上下文,并提供一些额外的功能,如自动注入 @Autowired 注解的依赖项等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值