亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

基于spring boot排除掃描類的三種方式小結(jié)

瀏覽:11日期:2023-06-27 18:43:45

最近在做單測(cè)的時(shí)候,由于自己配置的spring boot容器會(huì)默認(rèn)掃描很多不想被加載,網(wǎng)上中文的文章并不多,所以來(lái)總結(jié)一下。

默認(rèn)下面描述的類都在一個(gè)包下面

第一步我們新建一個(gè)應(yīng)用啟動(dòng)的類,一個(gè)類用來(lái)充當(dāng)Configuration,為了能明顯的感知到其到底有沒生效,我編寫如下:

@SpringBootApplicationpublic class Test { public static void main(String[] args) {new SpringApplication(Test.class).run(args); }}

@Configurationpublic class MyConfig { @Bean public BeanPostProcessor beanPostProcessor() {System.out.println('初始化了 bean BeanPostProcessor');return new BeanPostProcessor() { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println('加載了bean ' + beanName);return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {return bean; }}; }}

我們可以啟動(dòng)應(yīng)用發(fā)現(xiàn)輸出

初始化了 bean BeanPostProcessor加載了bean org.springframework.context.event.internalEventListenerProcessor加載了bean org.springframework.context.event.internalEventListenerFactory加載了bean org.springframework.boot.autoconfigure.AutoConfigurationPackages加載了bean org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration加載了bean org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration加載了bean objectNamingStrategy加載了bean mbeanServer加載了bean mbeanExporter加載了bean org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration加載了bean spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties加載了bean org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration加載了bean org.springframework.boot.autoconfigure.web.WebClientAutoConfiguration

說(shuō)明被@Configuration 修飾的類MyConfig本身被掃描了。

方法1:用exclude指明明確要排除的類.

@SpringBootApplication@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {MyConfig.class})})public class Test { public static void main(String[] args) {new SpringApplication(Test.class).run(args); }}

用ComponentScan的excludeFilters屬性,可以明確排除調(diào)需要掃描的類。

但是這里存在一個(gè)問題,如果要排除的類比較多,那這里會(huì)看起來(lái)很冗余。我們可以采用第二種方式。注解排除。

方法2 : 用注解方式排除

public @interface IgnoreScan {}

新建此注解。

在需要忽略的類上添加:

@Configuration@IgnoreScanpublic class MyConfig { @Bean public BeanPostProcessor beanPostProcessor() {System.out.println('初始化了 bean BeanPostProcessor');return new BeanPostProcessor() { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println('加載了bean ' + beanName);return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {return bean; }}; }}

這樣即可排除掉不被掃描了。

方法3 :

第三種方式實(shí)現(xiàn)org.springframework.core.type.filter.TypeFilter,然后也是ComponentScan去排除指定的注解。網(wǎng)上寫的好的文章很多,這里不多說(shuō)了。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 青青草国产青春综合久久 | 极色影院| 国产精品伦理久久久久 | 欧美一级视 | 黑巨茎大战中国美女 | 亚洲欧美日韩在线2020 | 国产无套乱子伦精彩是白视频 | 欧美 日韩 国产 在线 | 亚洲第一黄色网址 | 久久 精品 一区二区 | 一级黄色录像播放 | 91久久综合九色综合欧美98 | 成 人 免费观看网站 | 欧美日韩国产一区二区三区在线观看 | 日韩视频在线观看中字 | 中国精品视频一区二区三区 | 中国女警察一级毛片视频 | 黄页免费看 | 欧美在线黄色 | 久久精品国产91久久综合麻豆自制 | 韩国精品一区二区久久 | 国产高清自拍一区 | 欧美在线精品一区二区在线观看 | 啪一啪在线 | 日韩免费一级a毛片在线播放一级 | 国产一国产a一级毛片 | 国产乱弄免费视频观看 | 婷婷播放器 | 日韩高清一区二区三区不卡 | 午夜看一级特黄a大片 | 91免费在线视频 | 久久草在线免费 | 精品国产高清自在线一区二区三区 | 欧美黄一级 | 日本特级aⅴ一级毛片 | 日韩一区二区三区免费 | 偷窥自拍有声 | 国产日韩一区二区三区在线播放 | 日韩欧美在线观看视频一区二区 | 国产精品免费aⅴ片在线观看 | 成人涩|