34 springboot項目之間依賴導致bean 無法加載問題


方式一(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM