方式一(OK)
模塊A引入模塊B ,但是模塊B的bean一直注入不進來
原因: A模塊的Application是在com.xx.xx包下,那么勢必只能掃描到這個包下的bean, B模塊的Application是在com.xxx包下,那么在A引入B以后就A就肯定掃描不到他上層包的bean
解決辦法:
1.將A模塊和B模塊的Application置於相同路徑下,例如com.xx下(只是名稱一致,不是真的在同一包下)
2.使用@ComponentScan(value="com.xx")注解,指定掃描的包路徑
3.此時@SpringBootApplication的掃描包路徑已經不起作用,即便顯示聲明也沒用(scanBasePackages)
@ComponentScan會取代@SpringBootApplication注解的scanBasePackages,
所以如果A模塊的包名和B模塊的包名不一致的話,要把A,B的包分別放到@ComponentScan中,
(注:這個和上面的無關)
不使用Spring boot自帶的打包插件
不能使用springboot項目自帶的打包插件進行打包:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
而應當使用傳統項目的maven打包:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <!--指明源碼用的Jdk版本--> <target>1.8</target> <!--指明打包后的Jdk版本--> </configuration> </plugin> </plugins> </build>
因為springboot-maven-plugin打包的第一級目錄為Boot-INF,無法引用.
並install到本地maven庫中:
maven clean install