需求:由于我们的项目是父子结构的Maven项目,可能我们在parent项目中依赖了很多基础包(可能包含有redis,数据库的相关包),那我们的子项目全部依赖parent,但是可能我们的服务是消息队列(不需要Redis/数据库),定时任务服务(不需要Redis)等等,所以我们需要排序不需要的组件
异常:
由于只要项目中有对应的依赖jar,那么就启动的时候就会去加载对应的组件,也会去扫描配置文件,找不到就会报错。
方案:
1.在pom文件中利用exclusions排除不需要的
- <dependency>
- <groupId>com.nk</groupId>
- <artifactId>system</artifactId>
- <version>0.0.1</version>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
2.在注解里面利用exclude排除不需要的
通过禁用指定的自动化配置来避免加载不必要的自动化配置,下面列举了禁用的方法:
注解方式:
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
当使用@SpringBootApplication时,也可以使用它的exclude属性来指定
当使用@SpringCloudApplication时,由于它没有exclude属性,所以需要@EnableAutoConfiguration注解配合使用
配置文件:spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration