@SpringBootConfiguration重复加载报错
创始人
2024-11-06 02:09:38
0

Junit单元测试@Test启动报错,@SpringBootConfiguration注解重复问题排查:

@SpringBootApplication 注解的 exclude 属性用于排除特定的自动配置类,而不是用于排除主配置类本身。因此,不能通过 exclude 属性来排除主配置类的加载。

正确的使用方式

如果你想排除某些自动配置类,可以使用 exclude 属性。例如:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class PortalApplication {     public static void main(String[] args) {         SpringApplication.run(PortalApplication.class, args);     } } 

排除主配置类的加载

如果你确实需要在某些情况下排除主配置类的加载,可以考虑以下几种方法:

1. 使用不同的配置类

你可以创建不同的配置类,并在不同的环境中使用不同的配置类。例如,可以创建一个测试配置类,并在测试中使用它。

// 主配置类 @SpringBootApplication public class PortalApplication {     public static void main(String[] args) {         SpringApplication.run(PortalApplication.class, args);     } }  // 测试配置类 @SpringBootApplication public class TestApplication {     public static void main(String[] args) {         SpringApplication.run(TestApplication.class, args);     } } 

在测试类中使用 @SpringBootTest 注解来指定测试配置类:

import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.junit.runner.RunWith; import org.junit.Test;  @RunWith(SpringRunner.class) @SpringBootTest(classes = TestApplication.class) public class PortalApplicationTest {     @Test     public void contextLoads() {         // 测试内容     } } 
2. 使用 @TestConfiguration

如果你只需要在测试中排除某些配置,可以使用 @TestConfiguration 注解来创建测试专用的配置类。

import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean;  @TestConfiguration public class TestConfig {     @Bean     public SomeBean someBean() {         return new SomeBean();     } } 

在测试类中使用 @Import 注解来导入测试配置类:

import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.context.annotation.Import; import org.junit.runner.RunWith; import org.junit.Test;  @RunWith(SpringRunner.class) @SpringBootTest(classes = PortalApplication.class) @Import(TestConfig.class) public class PortalApplicationTest {     @Test     public void contextLoads() {         // 测试内容     } } 

总结

  • @SpringBootApplicationexclude 属性:用于排除特定的自动配置类,而不是用于排除主配置类本身。
  • 不同的配置类:可以创建不同的配置类,并在不同的环境中使用不同的配置类。
  • @TestConfiguration:用于创建测试专用的配置类,并在测试中使用。

相关内容

热门资讯

2026版复盘!宝宝浙江辅助器... 2026版复盘!宝宝浙江辅助器(辅助)真是确实有辅助工具(有挂助手)1、宝宝浙江辅助器透视辅助软件激...
目前来看!雀友会广东潮汕辅助有... 目前来看!雀友会广东潮汕辅助有开挂(辅助)本来真的有辅助技巧(有挂讲解)1、下载好雀友会广东潮汕辅助...
2026版攻略!卡农免费辅助(... 2026版攻略!卡农免费辅助(辅助)切实真的是有辅助神器(真的有挂)1、游戏颠覆性的策略玩法,独创攻...
今年以来!微乐挖坑内购破解(辅... 今年以来!微乐挖坑内购破解(辅助)一贯是真的有辅助工具(有挂功能)1、不需要AI权限,帮助你快速的进...
方法辅助挂!雀神挂件价格开挂透... 方法辅助挂!雀神挂件价格开挂透视(辅助)切实真的有辅助插件(有挂详情)1、这是跨平台的雀神挂件价格开...
相较于以往!全民内蒙古辅助器(... 相较于以往!全民内蒙古辅助器(辅助)本来是有辅助方法(有挂存在)相较于以往!全民内蒙古辅助器(辅助)...
据了解!河洛杠次脚本开发(辅助... 据了解!河洛杠次脚本开发(辅助)一贯是有辅助工具(真的有挂)1、游戏颠覆性的策略玩法,独创攻略技巧玩...
不少玩家反映!科乐游戏辅助脚本... 不少玩家反映!科乐游戏辅助脚本视频(辅助)其实真的有辅助插件(发现有挂)1、科乐游戏辅助脚本视频脚本...
有了最新消息!三哥玩辅助(辅助... 有了最新消息!三哥玩辅助(辅助)一直确实有辅助教程(有挂方略)1、打开软件启动之后找到中间准星的标志...
软件辅助挂!九游破解辅助插件官... 软件辅助挂!九游破解辅助插件官网(辅助)都是是真的有辅助方法(有挂教程)1、上手简单,内置详细流程视...