国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

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

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

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

第一步我們新建一個應(yīng)用啟動的類,一個類用來充當(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; }}; }}

我們可以啟動應(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

說明被@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)需要掃描的類。

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

方法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 :

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

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产欧美综合一区二区 | 国产肥老妇视频一 | 91精品国产9l久久久久 | 草草久久97超级碰碰碰免费 | 欧美在线视频精品 | 国产成人丝袜网站在线看 | 国产在线精品一区二区 | 99久久香蕉国产综合影院 | 亚洲成人免费在线 | 久久精品国产免费一区 | 男人干女人逼 | 一级毛片不卡片免费观看 | 日本一级毛片片在线播放 | 成年人网站免费在线观看 | 久久久网久久久久合久久久久 | 最新69成人精品毛片 | 国产亚洲91 | 国产精品久久久久久久久久久威 | www.亚洲在线 | 欧美亚洲免费久久久 | 福利云 | 天天插夜夜爽 | 九九久久精品视频 | 看全色黄大色黄大片毛片 | 九九热精品在线 | 91欧美激情一区二区三区成人 | 亚洲国产精品网站久久 | 久草网站在线观看 | 国产精品手机视频一区二区 | 国产美女一区二区三区 | 成人男女网18免费0 成人男女网18免费看 | 国产成人福利夜色影视 | 欧美日韩另类在线观看视频 | 一男一女搞黄 | 久久免费视频在线观看30 | 久久韩国 | 国内自拍一区 | 国产伦久视频免费观看视频 | 91老色批网站免费看 | 一区二区三区在线 | 国产一级做a爱片久久毛片a |