色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

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

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

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

默認下面描述的類都在一個包下面

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

我們可以啟動應用發現輸出

初始化了 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屬性,可以明確排除調需要掃描的類。

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

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

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 成人区视频爽爽爽爽爽 | 99久久精品免费视频 | 国产成人yy精品1024在线 | 日本视频在线免费观看 | 国产亚洲毛片在线 | 国产精品国产欧美综合一区 | 色老头久久久久 | 欧美精品专区55页 | 一区二区三区伦理 | 中文字幕人成乱码在线观看 | 国产亚洲精品一区999 | 在线亚洲精品自拍 | 日韩视频久久 | 精品国产三级a∨在线观看 精品国产三级a在线观看 | 中文字幕一区二区三区精彩视频 | 亚洲欧美国产精品专区久久 | 亚洲第一区香蕉_国产a | 中文字幕一区二区三区亚洲精品 | 日韩欧美色综合 | 国产精品推荐 | 黄色福利小视频 | 欧美成人免费全部色播 | 国产成人午夜精品5599 | 香蕉久久高清国产精品免费 | 国产乱淫a∨片免费视频 | 亚洲一区免费视频 | 欧洲乱码伦视频免费 | yy6080久久亚洲精品 | 午夜私人影院免费体验区 | 天天都色 | 欧美高清日韩 | 日本毛片在线观看 | 性夜黄a爽爽免费视频国产 性夜影院爽黄a爽免费看网站 | 欧美激情亚洲 | 国产午夜伦伦伦午夜伦 | 欧美成人精品动漫在线专区 | 一级毛片视频 | 日本韩国台湾香港三级 | 自拍成人 | 国产99视频精品免视看9 | 久草在线免费资源 |