1. 程式人生 > >Spring+Mybatis整合讀取Jar中的mapper配置檔案

Spring+Mybatis整合讀取Jar中的mapper配置檔案

在專案中通過Maven管理程式碼常常遇到將部分功能作為單獨模組進行開發,在新建的功能模組中將mapper檔案放置到resources資料夾下;專案中依賴該模組時遇到以下錯誤:

Error updating database.  Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.*

通過錯誤提示可以明白時Spring在注入Mybatis的Mapper配置檔案時沒有成功,導致專案中呼叫時出現找不到對應的執行語句。

將部分功能作為單獨模組開發時和專案中的程式碼結構時完全一樣的,檢視Spring的配置檔案中讀取Mapper檔案的路徑也是沒有問題的。

<property name="mapperLocations">
    <list>
        <value>classpath:/com/atcl/elwin/platform/mapper/*Mapper.xml</value>
    </list>
</property>
經過驗證發現問題出現在讀取Mapper檔案的頭部classpath部分。

首先,classpath是指WEB-INF資料夾下的classes目錄。

classpath只會在classes目錄下查詢指定的檔案,如果需要查詢jar中的指定的配置檔案需要“classpath*”。

將Spring配置檔案中的讀取Mapper的地方修改成如下:

<property name="mapperLocations">
    <list>
        <value>classpath*:/com/atcl/elwin/platform/mapper/*Mapper.xml</value>
    </list>
</property>
然後重啟應用將功能單獨模組化呼叫成功。

相關推薦

Spring+Mybatis整合讀取Jarmapper配置檔案

在專案中通過Maven管理程式碼常常遇到將部分功能作為單獨模組進行開發,在新建的功能模組中將mapper檔案放置到resources資料夾下;專案中依賴該模組時遇到以下錯誤: Error updating database.  Cause: java.lang.Illega

spring boot mybatis沒有掃描jarMapper接口

sta com ble str base 子目錄 run scan tis 只需要在spring boot啟動類上加上註解,並指定jar包中接口文件包路徑即可 如下: @ComponentScan(basePackages = "com.xx") @MapperS

SpringMVC Spring MyBatis整合配置文件

isp xmlns manage where spl return 創建 lec common 1、spring管理SqlSessionFactory、mapper 1)在classpath下創建mybatis/sqlMapConfig.xml <?xml vers

解決spring mybatis 整合mapper接口註入失敗

child nec ddc creates err list xml文件 tran popu spring整合mybatis,在dao層我們只寫一個接口,配置相應的*mapper.xml文件, 報如下錯誤: 1 org.springframework.beans.fac

2.SpringMVC+Spring+Mybatis整合(2) 配置web.xml,spring-servlet.xml,applicationContext.xml

web spring-servlet 在 webapp WEB-INF下 applicationContext 在resource資料夾下 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:

Spring-mybatis整合配置常用的兩種方式

1.使用mapper介面,定義了mapper介面,在mapper.xml中關聯mapper檔案的。 其中mapper定義了介面,其類名與xml中的namespace一致,id與介面定義的方法名一直,這樣,把xml載入到spring中後,mybatis的初始化配置sqlsessio

圖解 IDEA springboot 專案 MyBatis Generator 逆向生成實體類及 mapper 配置檔案

1. 新建一個 配置檔案:generatorConfig.xml 。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org

spring mvc+Mybatis整合shiro 第一章 整體配置

前段時間研究了一下shiro,因為看不懂英文所以學習過程頗為曲折,後來整合shiro想寫一個sso結果這段時間又寫不下去了只好來寫寫部落格了。 最初學shiro是在百度搜教程,說實話那些教程除了開濤寫的其它人寫的確實不怎麼樣,而且開濤的教程也不是特別詳細的那種,所以我在這給

Mybatis框架mapper配置和foreach標籤的使用

foreach標籤下面介紹一下一個mapper配置檔案中的foreach標籤(注意,要跟著前面的總結來看,這裡使用的例子是結合前面的工程寫的,大部分程式碼沒有再贅述)foreach的作用是向sql傳遞陣列或List,mybatis使用foreach解析1.1需求在使用者查詢列

Spring+MyBatis整合所需jar

MySql驅動包 mysql-connector-java-5.1.7-bin.jar MyBatis的核心包和依賴包 mybatis-3.2.7.jar(核心包) asm-3.3.1.jar(依

spring整合hibernate配置檔案hibernate.cfg.xml的詳解總結

applicationContext.xml配置檔案 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" x

mybatis逆向工程mapper配置檔案mysql自增id 的配置

//在插入前id 自增 <selectKey resultType="java.lang.Integer" keyProperty="id" order="BEFORE" >

MyBatis學習筆記(一)——配置檔案的別名以及mapper的namespace

MyBatis中如果每次配置類名都要寫全稱也太不友好了,我們可以通過在主配置檔案中配置別名,就不再需要指定完整的包名了。 別名的基本用法: <configuration> <typeAliases> <typeAlias

spring.xml跟spring-mvc.xml跟Mybatis整合!以及log4j的配置

sprin跟Mybatis整合配置!!! <?xml version="1.0" encoding="UTF-8"?>

Spring之AOP在XML配置方法

字段 object 代理 [] ger 編程 調用 加載器 bsp AOP 即 Aspect Oriental Program 面向切面編程 先來一個栗子: <aop:config> <aop:pointcut id="

.Spring+Mybatis整合

ont 4.3 cati 實例 users frame 數據庫 text manager 一:聲明了四個配置文件 1.spring-Mybatis的配置文件 <?xml version="1.0" encoding="UTF-8"?><beans

mybatis學習(十一)——springmvc++spring+mybatis整合

transacti servlet 自動註入 為我 reac content attribute 定義 property 做任何一個項目都以一個需求,這裏先定義一下需求:利用三大框架查詢酒店列表。 一、搭建開發環境 1、創建一個web項目 我這裏用的是 jdk1.8+to

spring-mybatis整合的dao單元測試

app iba 不一致 映射 xxx perm destroy 3.1 那種 在做spring-mybatis整合項目時對Dao所對應的 XXX.xml進行單元測試。整合時是spring和mybatis的整合,所以mybatis.xml文件就沒有了, 對應的配置

WebService--CXF與Spring整合(jaxws:endpoint形式配置

tid archetype 全路徑 systems hide onf -o hot conf 一、CXF與Spring整合(jaxws:endpoint形式配置) 工具要點:idea、maven 1.新建一個maven項目 <?xml version="1.0"

spring-mybatis整合項目 異常處理

pat 失敗 encoding endpoint per ans 分隔 ctp 技術分享 java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMet