在 Spring Boot @Configuration 註解類中使用 Mybatis 查詢資料庫啟動報錯
場景
想在 Spring Boot 啟動時使用 guava 快取,將資料庫的部分內容放入快取中,所以寫了一個 CacheConfig 類,但是在啟動過程中報錯,錯誤為:
@Configuration
public class CacheConfig {
}
Mapped Statements collection does not contain value for com.xxx.xxx.dao.ScoreDao.selectById
類似情況為:一個 person 關聯了一個 score,擁有欄位 scoreId(外來鍵),並且在Person 類中有一個成員 Score score,使用 Mybatis 在查詢 person 時一併將 score 查詢出來。這段程式在之前已經執行測試成功。
Dao 中方法為:
PersonDao
@Select("select " + FIELDS + " from person")
@ResultMap("PersonMapper.PersonResult")
public List<Person> selectAll();
ScoreDao
@Select("select " + FIELDS + " from score where sid = #{sid}")
Score selectById(long sid);
Person ResultMap 在 xml 檔案中配置為
<mapper namespace="SellerRelationMapper" >
<resultMap type="SellerRelation" id="SellerRelationResult">
<id property="sid" column="sid"/>
<result property="scoreId" column="score_id"/>
<association property="score" column="score_id" select="com.xxx.xxx.dao.ScoreDao.selectById"/>
</resultMap >
</mapper>
原因
在執行 CacheConfig 類中方法時,ScoreDao 還沒有被注入,所以無法被找到。
解決方法
原本想是否能控制依賴注入的順序,讓 CacheConfig 在 ScoreDao 被注入後再執行,但是沒有查詢到方案,於是只能在 CacheConfig 類或被 CacheConfig 類依賴的 Service 新增如下程式碼
@Autowired
private ScoreDao ScoreDao;
相關推薦
在 Spring Boot @Configuration 註解類中使用 Mybatis 查詢資料庫啟動報錯
場景 想在 Spring Boot 啟動時使用 guava 快取,將資料庫的部分內容放入快取中,所以寫了一個 CacheConfig 類,但是在啟動過程中報錯,錯誤為: @Configuration public class CacheConfig { }
(D)spring boot使用註解類代替xml配置例項化bean
bean經常需要被例項化,最常見的就是new一個唄,Bean bean = new Bean(),方便好用還快捷。 然而在我們剛開始學習寫i專案的時候卻發現,new不好用哦,並且也不報錯,根本不知道怎麼找原因 比如 package com.example; import org.springfr
spring boot 在普通類中獲取HttpServletRequest物件
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import j
Spring boot+Thymeleaf+easyui整合:js建立元件頁面報錯
開發工具:Ideal 使用場景:Demo 前提: 環境:Spring boot +Thymeleaf+easyui &nbs
springboot+kotlin專案中Application中的main方法啟動報錯
Kotlin 小科普這裡大家一個小科普,Kotlin是完全相容JVM,完全無縫支援Java,並且在您可以在Java和 Kotlin 來回自如的切換,所以開文就借用了官方的一句話,是 Android中的 Swift。就好比 Swift一樣,在支援 Swift新語法的時候,也支援
SpringBoot專案中獲取yml檔案的屬性時實體屬性類出現Spring Boot Configuration Annotation Processor not found in classpath
1.SpringBoot專案的專案結構如下: 2.屬性實體類 上面出現了Spring Boot Configuration Annotation Processor not found in classpath的原因是@ConfigurationPr
spring boot整合mybatis查詢資料庫返回Map欄位為空不返回解決
1.出現問題原因 原因1:mybatis的配置即mapper返回對映配置。 原因2:jackson的配置即@ResponseBody序列化配置。 2.解決方式 步驟1:解決原因1 mybatis:configuration: call-setters
Spring 在靜態工具類中使用註解注入bean
問題 最近在專案中遇到這樣一個情況:有一個傳送郵件的工具類。在這個工具類中提供了幾種靜態方法,靜態方法需要另外一個類的例項提供處理。在static方法裡呼叫注入進來的service,因為是靜態方法,所以必須宣告該service也必須是static的,這時候發現
spring 在單例類中使用註解注入bean
/** * @author: jerry * @Email: * @Company: * @Action: 日誌處理工具類 * @DATE: 2016-9-19 */ @Component//泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註 p
spring為何在有的類中註解會失效
今天碰到一個特別噁心的問題,就是我想從配置檔案讀取配置檔案的值,但是死活注入不進來,我在Controller類中去試了下,發現可以注入進來,我在springboot工程的啟動類中試了下,發現也可以注入進來,一直想不通是啥原因讓我在這個handler類中死活注入不成
Spring boot @Value註解讀取application.properties配置檔案中的屬性值
@Value註解引用application.properties配置檔案屬性值 @Value 註解載入屬性值的時候可以支援兩種表示式來進行配置, 如下所示: 一種是PlaceHolder 方式, 格式為${...}, 大括號內為PlaceHolder。 另
Spring Boot入門(六):使用MyBatis訪問MySql資料庫(註解方式)
本系列部落格記錄自己學習Spring Boot的歷程,如幫助到你,不勝榮幸,如有錯誤,歡迎指正! 本篇部落格我們講解下在Spring Boot中使用MyBatis訪問MySql資料庫的簡單用法。 1.前期準備 假設你的機器已經安裝好了MySql,我們先執行如下語句建立資料庫和表: CREATE DATAB
spring-boot-devtools在Idea中熱部署方法
maven cache too wid onf ram 組合 ng- app 一、概述 spring boob 項目在開發中修改了項目文件不能進行熱部署,著實影響效率。 二、熱部署配置 2.1 POM文件 <plugin> <groupId>
Spring Boot系列教程八: Mybatis使用分頁插件PageHelper
tid bind color clas owb 如何 cto 集成 使用 一.前言 上篇博客中介紹了spring boot集成mybatis的方法,基於上篇文章這裏主要介紹如何使用分頁插件PageHelper。在MyBatis中提供了攔截器接口,我們可以使用PageHelp
spring boot 的註解
spring boot 的註解(1)@SpringBootApplication 申明讓spring boot自動給程序進行必要的配置,這個配置等同於:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三個配置。示例代碼:packa
spring-boot主要註解
路徑 res 頁面 nbsp con 請求方式 方式 字符串 如何 一、@Controller 處理http請求 1、結合模版組件返回頁面,spring-boot提供了spring-boot-starter-thymeleaf組件 2、結合@ResponseBoy返回JSO
Spring Boot常用註解總結
auto 基於 back rgs enable glob 裝配 內容 註意 Spring Boot常用註解總結 @RestController和@RequestMapping註解 @RestController註解,它繼承自@Controller註解。4.0之前的版本,Sp
spring boot: 條件註解@Condition
.sh 列表 一個 condition cati name property sta 輸出 @Conditional根據滿足某一個特定的條件創建一個特定的Bean(基於條件的Bean的創建,即使用@Conditional註解)。 比方說,當一個jar包在一個類的路徑下的時候
spring boot: @Retention註解 @Documented 註解 @Inherited 註解
ann log 讀取 dos return 方法 運行 lan int http://www.jb51.net/article/55371.htm Retention註解 Retention(保留)註解說明,這種類型的註解會被保留到那個階段. 有三個值:1.Retent
007-Spring Boot @Enable*註解的工作原理
sync express override factor run ext soft navi itself 一、@Enable* 啟用某個特性的註解 1、EnableConfigurationProperties 回顧屬性裝配 application.properti