問題一java
Spring Boot
掃描包提示找不到mapper
的問題,異常信息內容:web
Consider defining a bean of type in your configuration
分析緣由:Spring Boot
項目的Bean裝配默認規則是根據Application類所在的包位置從上往下掃描,「Application類」是指Spring Boot
項目入口類。若是Application類所在的包爲:com.yoodb.blog,則只會掃描com.yoodb.blog包及其全部子包,若是service或dao所在包不在com.yoodb.blog及其子包下,則不會被掃描。spring
解決方法:數據庫
方式一:使用註解@ComponentScan(value=」com.yoodb.blog」)
,其中,com.yoodb.blog
爲包路徑。json
方式二:將啓動類Application放在上一級包中,注意的是Application
啓動類必需要保證在包的根目錄下。mvc
問題二app
啓動Spring Boot
時,,拋出異常信息以下:ide
Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package
application.Java
類文件內容以下:ui
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.boot.SpringApplication; @Controller @SpringBootApplication @Configuration public class HelloApplication { @RequestMapping("hello") @ResponseBody public String hello() { return "hello world!"; } public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } }
分析緣由:Spring Boot
啓動時,拋出「** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.
」警告信息,這是因爲application.Java
文件不能直接放在main/java
文件夾下,必需要建一個包把它放進去。插件
解決辦法:Spring Boot
在寫啓動類的時候若是不使用@ComponentScan
指明對象掃描範圍,默認指掃描當前啓動類所在的包裏的對象,若是當前啓動類沒有包,則在啓動時會拋出上述警告信息,致使項目出錯。
問題三
Spring Boot
鏈接數據庫時,拋出異常信息以下:
caused by: java.lang.NoClassDefFoundError: javassist/bytecode/ClassFile
分析緣由:這是因爲缺乏javassist.jar
包致使啓動失敗
解決辦法:經過Eclipse執行Maven命令重構項目:Maven
-Update Project
,等待下載jar包便可,若仍是失敗請手動添加javassist.jar
包的pom.xml
配置信息。
Spring Boot
使用spring-data-jpa
插件,拋出異常信息以下:
caused by: java.lang.illegalargumentexception: Not a managed type: class entity.User
分析緣由:這是因爲Spring Boot
未找到實體對象指定的類名,缺乏jpa entity
配置路徑
解決辦法:在Repository
配置類前面添加註解@EntityScan('entity對應的包路徑')
。
問題四
Spring Boot
返回json字符串,增長APPLICATION_JSON
參數代碼以下:
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
在添加APPLICATION_JSON
參數後,拋出「APPLICATION_JSON cannot be resolved or is not a field
」異常信息。
分析緣由: Bean
實體中存在getX
或setX
方法,可是沒有這個x屬性,將致使json
轉換失敗,拋出「APPLICATION_JSON cannot be resolved or is not a field
」異常信息。
解決辦法:去掉不存在屬性的getX
或setX
方法或者增長上改屬性便可。