1. 程式人生 > >在 Spring Boot @Configuration 註解類中使用 Mybatis 查詢資料庫啟動報錯

在 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