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

相关内容

热门资讯

透视科普!云扑克德州PK,we... 透视科普!云扑克德州PK,weopke真的(原来真的有挂);科技详细教程小薇《136704302》所...
透视开发!wpk德州透视辅助,... 透视开发!wpk德州透视辅助,wpk代打是真的(其实真的有挂);科技详细教程小薇《136704302...
透视普及!微扑克ai机器人,c... 透视普及!微扑克ai机器人,cloud辅助(其实真的有挂)1、透视普及!微扑克ai机器人,cloud...
六分钟实锤!德州哪里有扑克辅助... 六分钟实锤!德州哪里有扑克辅助器"德州ai人工智能(其实真的有挂)-哔哩哔哩;德州哪里有扑克辅助器黑...
透视开发!线上wpk德州ai机... 透视开发!线上wpk德州ai机器人,德扑ai软件(原来真的有挂)1、进入到德州ai机器人黑科技之后,...
8分钟透明挂!微扑克ai辅助工... 8分钟透明挂!微扑克ai辅助工具"wpk透视辅助测试(原来真的有挂)-哔哩哔哩是一款可以让一直输的玩...
透视科普!governorof... 透视科普!governorofpoker3有挂吗,线上德州辅助工具有哪些(原来真的有挂)1、ai辅助...
七分钟科普!poker外挂&q... 七分钟科普!poker外挂"aapoker外挂(其实真的有挂)-哔哩哔哩1、构建自己的poker外挂...
5分钟揭秘!wepower透视... 5分钟揭秘!wepower透视辅助"微扑克ai辅助(原来真的有挂)-哔哩哔哩;科技详细教程小薇《75...
透视开发!微扑克可以用模拟器,... 透视开发!微扑克可以用模拟器,wpk辅助器下载方式(其实真的有挂)1、ai辅助优化,发牌逻辑科技护佑...