@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:用于创建测试专用的配置类,并在测试中使用。

相关内容

热门资讯

智星德州菠萝开挂!德州之星辅助... 智星德州菠萝开挂!德州之星辅助(透视)原来是真的有挂(详细辅助专业讨论);智星德州菠萝开挂辅助插件是...
aapoker辅助器是真的吗!... aapoker辅助器是真的吗!福建大菠萝万能辅助器(透视)切实是真的有挂(解密教程)1、上手简单,内...
透视神器!wpk透视辅助方法,... 透视神器!wpk透视辅助方法,智星菠萝辅助,总算了解(有挂黑科技),您好,wpk透视辅助方法这款游戏...
透视数据!智星菠萝辅助器,wp... 透视数据!智星菠萝辅助器,wpk辅助工具,黑科技教程(有挂辅助);1、打开软件启动之后找到中间准星的...
德扑之星猫腻!wpk德州透视辅... 德扑之星猫腻!wpk德州透视辅助(透视)果然是真的有挂(详细辅助玩家必看分享);小薇(透视辅助)致您...
wepoker辅助器下载!we... wepoker辅助器下载!wepoker辅助透视(透视)本来是有挂(教你攻略);1、金币登录送、破产...
透视好友!智星德州菠萝透视插件... 透视好友!智星德州菠萝透视插件工具,aapoker透视怎么用,重大来袭(有挂教程)1.智星德州菠萝透...
透视软件!wepoker透视,... 透视软件!wepoker透视,aapoker透视脚本,辅助教程(有挂规律)1、玩家可以在aapoke...
wepoke辅助插件!德扑数据... wepoke辅助插件!德扑数据软件(透视)先前存在有挂(详细辅助重大科普);是一款可以让一直输的玩家...
wepoker透视脚本安卓!h... wepoker透视脚本安卓!hhpoker德州透视(透视)真是存在有挂(wpk教程)1、完成wepo...