Spring Boot(3)---自定義spring boot starter 問題

1. "Failed to process import candidates for configuration class [com.simple.....]":java

主要緣由:spring

是由於本身定製的starter在打包時(package)用了spring-boot-maven-plugin,即在你的定製starter工程的pom.xml中有以下配置:maven

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>spring-boot

這樣打出的包,就是按着spring boot的打包方式,Classpath設定,相對目錄,資源目錄等。當你用另外一個spring boot項目使用這個定製的starter的jar包時。就會有問題 ,由於認爲你這個starter是一個普通的jar包。ui

這樣就沒法找到你的類定義。spa

解決辦法:插件

刪除自定義starter中的pom.xml中的打包插件設置,採用缺省的jar打包方式。便可解決這個問題。code

2.java.lang.IllegalArgumentException: Not an managed type: class .... 」xml

根本緣由:資源

是你用到的一些JPA,實體,及Repository類不是你spring boot啓動文件所在的目錄。致使JPA搜不到這些實體,Repository類。

解決辦法:

在spring boot 的啓動類中加入以下註解:

@EnableJpaRepositories("com.example.repository")//那些搜索不到的JPA相關的實體及Repository的包路徑

@EntityScan("com.example.repository")

若是你用到了mongo的JPA還應該加上相對應的。

@EnableMongoRepositories("com.example.mongo")
@EnableJpaRepositories("com.example.repository")

@EntityScan("com.example.repository")

相關文章
相關標籤/搜索