首页 > 软件编程 > java > @SpringBootConfiguration加载报错

@SpringBootConfiguration重复加载报错问题解决

作者:你这个代码我看不懂

@SpringBootApplication 注解的 exclude 属性用于排除特定的自动配置类,而不是用于排除主配置类本身,因此,不能通过 exclude 属性来排除主配置类的加载,这篇文章主要介绍了@SpringBootConfiguration重复加载报错,需要的朋友可以参考下

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

到此这篇关于@SpringBootConfiguration重复加载报错的文章就介绍到这了,更多相关@SpringBootConfiguration重复加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • mybatis多对多查询的实现(xml方式和注解方式)
    mybatis多对多查询的实现(xml方式和注解方式)
    2024-08-08
  • 线程池之exectue与submit的区别及说明
    线程池之exectue与submit的区别及说明
    2024-08-08
  • Java的几种文件拷贝方式示例详解
    Java的几种文件拷贝方式示例详解
    2024-08-08
  • 深扒Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用
    深扒Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用
    2024-08-08
  • Java Web防止同一用户同时登录几种常见的实现方式
    Java Web防止同一用户同时登录几种常见的实现方式
    2024-08-08
  • SpringBoot无法连接redis的解决方案
    SpringBoot无法连接redis的解决方案
    2024-08-08
  • 升级springboot中spring框架的版本的实现方法
    升级springboot中spring框架的版本的实现方法
    2024-08-08
  • SpringBoot3配置Logback日志滚动文件的方法
    SpringBoot3配置Logback日志滚动文件的方法
    2024-08-08
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号