当前位置: 首页 > news >正文

@ContextConfiguration

@ContextConfiguration 是 Spring Test 框架 提供的注解,用来告诉测试类 “Spring 容器启动时去哪里拿配置”
没有它,测试就跑在 纯 JVM 里;加上它,测试就跑在 Spring 上下文(ApplicationContext) 里,可以 @Autowired 直接注入 Bean。


一、放在哪儿

@RunWith(SpringRunner.class)          // JUnit 4 写法
// 或 @ExtendWith(SpringExtension.class)  // JUnit 5 写法
@ContextConfiguration(...)
public class XxxServiceTest {}

二、三种常见“拿配置”方式

  1. XML 文件

    @ContextConfiguration(locations = "classpath:beans.xml")
    
  2. Java Config 类

    @ContextConfiguration(classes = AppConfig.class)
    
  3. 默认策略(推荐 Spring Boot)

    @SpringBootTest   // 已经组合了 @ContextConfiguration,自动找 @SpringBootApplication
    

三、还能干什么

属性示例说明
locations"classpath:dao.xml"加载 XML
classesAppConfig.class加载 @Configuration 类
initializersMyInitializer.class自定义 ApplicationContextInitializer
inheritLocationsfalse子测试类是否继承父类的配置

四、完整示例(JUnit 5)

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {ServiceConfig.class, DaoConfig.class})
@Transactional
class UserServiceTest {@Autowiredprivate UserService userService;@Testvoid createUser() {userService.create("Tom");assertEquals(1, userService.count());}
}

一句话总结
@ContextConfiguration 就是 Spring 测试的“启动入口” ——告诉测试框架:“用这些 XML 或 Java 配置去创建 Spring 容器,然后再跑我的测试。”

http://www.dtcms.com/a/325374.html

相关文章:

  • Java基础结课题-统计双色球中奖数
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘lightgbm’问题
  • yolo目标检测技术之yolo1到yolo5(二)
  • Profile.vue组件详细解析
  • 缓存的三大问题分析与解决
  • 【运维进阶】WEB 服务器
  • Linux epoll:高并发网络编程的终极武器
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin
  • 自动化UI测试工具TestComplete的多语言引擎与内置实践
  • LabVIEW声波测井信号处理系统
  • 【前沿技术动态】【AI总结】时隔六年!OpenAI 8 月 5 日「开放权重」回归,GPT-OSS 双模型能否重塑开源格局?
  • 小项目方的“活跃术”:市值管理 + 批量交易 + 新地址买入指南
  • [4.2-1] NCCL新版本的register如何实现的?
  • ESP32将DHT11温湿度传感器采集的数据上传到XAMPP的MySQL数据库
  • 【JavaEE】(12) 创建一个 Sring Boot 项目
  • 如何在直播APP中集成美颜SDK?美白滤镜功能开发全流程解析
  • Python笔记之`getattr`和`hasattr`用法详解
  • Vibe Coding 自然语言驱动 AI 编程方式
  • 5G NR NTN 在 PHY 层和 MAC 层实现 OAI
  • 第9节 大模型分布式推理核心挑战与解决方案
  • 代码管理工具——Git基本使用方法
  • 架构设计(15):AI时代的架构设计
  • 系统编程——信号通信
  • MySQL-日志
  • 第10节 大模型分布式推理典型场景实战与架构设计
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的多目标跟踪与行为分析优化(393)
  • 低代码开发实战案例,如何通过表单配置实现数据输入、数据存储和数据展示?
  • Docker-08.Docker基础-本地目录挂载
  • Camera open failed
  • Flutter SharedPreferences存储数据基本使用