@SpringBootConfiguration重復(fù)加載報錯問題解決
Junit單元測試@Test啟動報錯,@SpringBootConfiguration注解重復(fù)問題排查:
@SpringBootApplication 注解的 exclude 屬性用于排除特定的自動配置類,而不是用于排除主配置類本身。因此,不能通過 exclude 屬性來排除主配置類的加載。
正確的使用方式
如果你想排除某些自動配置類,可以使用 exclude 屬性。例如:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class PortalApplication {
public static void main(String[] args) {
SpringApplication.run(PortalApplication.class, args);
}
}排除主配置類的加載
如果你確實(shí)需要在某些情況下排除主配置類的加載,可以考慮以下幾種方法:
1. 使用不同的配置類
你可以創(chuàng)建不同的配置類,并在不同的環(huán)境中使用不同的配置類。例如,可以創(chuàng)建一個測試配置類,并在測試中使用它。
// 主配置類
@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() {
// 測試內(nèi)容
}
}2. 使用 @TestConfiguration
如果你只需要在測試中排除某些配置,可以使用 @TestConfiguration 注解來創(chuàng)建測試專用的配置類。
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 注解來導(dǎo)入測試配置類:
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() {
// 測試內(nèi)容
}
}總結(jié)
@SpringBootApplication的exclude屬性:用于排除特定的自動配置類,而不是用于排除主配置類本身。- 不同的配置類:可以創(chuàng)建不同的配置類,并在不同的環(huán)境中使用不同的配置類。
@TestConfiguration:用于創(chuàng)建測試專用的配置類,并在測試中使用。
到此這篇關(guān)于@SpringBootConfiguration重復(fù)加載報錯的文章就介紹到這了,更多相關(guān)@SpringBootConfiguration重復(fù)加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring之借助Redis設(shè)計一個簡單訪問計數(shù)器的示例
本篇文章主要介紹了Spring之借助Redis設(shè)計一個簡單訪問計數(shù)器的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
SpringBoot2整合activiti6環(huán)境搭建過程解析
這篇文章主要介紹了SpringBoot2整合activiti6環(huán)境搭建過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
WebSocket獲取httpSession空指針異常的解決辦法
這篇文章主要介紹了在使用WebSocket實(shí)現(xiàn)p2p或一對多聊天功能時,如何獲取HttpSession來獲取用戶信息,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01
Jackson反序列化@JsonFormat 不生效的解決方案
這篇文章主要介紹了Jackson反序列化@JsonFormat 不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java使用 Stream 流和 Lambda 組裝復(fù)雜父子樹形結(jié)構(gòu)
在最近的開發(fā)中,遇到了兩個類似的需求:都是基于 Stream 的父子樹形結(jié)構(gòu)操作,返回 List 集合對象給前端,下面給大家分享Java使用 Stream 流和 Lambda 組裝復(fù)雜父子樹形結(jié)構(gòu)的相關(guān)操作,感興趣的朋友跟隨小編一起看看吧2024-07-07
Java關(guān)鍵字synchronized基本使用詳解
這篇文章主要給大家介紹了關(guān)于Java關(guān)鍵字synchronized基本使用的相關(guān)資料,synchronized可以用來同步靜態(tài)和非靜態(tài)方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Java8實(shí)現(xiàn)任意參數(shù)的鏈棧
這篇文章主要為大家詳細(xì)介紹了Java8實(shí)現(xiàn)任意參數(shù)的鏈棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-10-10

