Spring Boot 排除某个类加载注入IOC
我们项目往往会引入其他项目的依赖,造成功能冲突的类,我们想把这些类排除掉,不注入到我们项目IoC容器中,
只加载自己的类
1
2
3
4
5
|
@ComponentScan (basePackages = "com.xxx" ,excludeFilters = {
@ComponentScan .Filter(type = FilterType.ASSIGNABLE_TYPE,classes = {
xxxPublisher. class ,
xxxAdvice. class ,
xxxService. class })})
|
其中这三个类,我不需要加载到我们项目中,需要指明type=FilterType.ASSIGNABLE_TYPE
不指定type类型执行classes={xxx...} 排除不了
它有五种类型:
1
2
3
4
5
6
7
|
public enum FilterType {
ANNOTATION,
ASSIGNABLE_TYPE,
ASPECTJ,
REGEX,
CUSTOM;
}
|
spring boot 排除个别配置类的代码
废话不说,直接上代码
1
2
3
4
5
6
7
8
9
10
|
@SpringBootApplication (exclude={DataSourceAutoConfiguration. class ,HibernateJpaAutoConfiguration. class })
@EnableScheduling
@ComponentScan (basePackages = { "com.hudai.platform.sms.vendor" , "com.hudai.platform.scp" }, excludeFilters =
@ComponentScan .Filter(type = FilterType.ASSIGNABLE_TYPE, value = com.hudai.platform.scp.alert.config.RestTemplateConfig. class ))
public class SmsVendorApplication {
public static void main(String[] args) {
SpringApplication.run(SmsVendorApplication. class , args);
}
}
|
1
|
excludeFilters = @ComponentScan .Filter(type = FilterType.ASSIGNABLE_TYPE, value = com.hudai.platform.scp.alert.config.RestTemplateConfig. class ))
|
这段是经典~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/change987654321/article/details/107962886