项目A中增加配置类
@Configuration
public class MyConfig {
public MyConfig() {
System.out.println("MyConfig动初始化。。。");
}
在META-INF/spring-factories配置如下
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.abc.config.MyConfig
项目B中POM引用A就可以自动注入MyCofig到容器中,启动的时候会自动打印MyConfig动初始化。。。
单独使用B的时候发现会报java.lang.IllegalStateException: Unable to read meta-data for class com.abc.config.MyConfig
这是因为项目A在的时候应用的项目A不是直接引用的jar包。查看jar包内容,发布打包后多了BOOT-INF.class
项目A的POM配置如下,由于下面的插件导致打包多了BOOT-INF
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
需要进行修改注释掉整个部分,或者
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这样打包后就没有BOOT-INF.class,启动也就没有报错。