2013-12-13 68 views
0

在我applicationContext.xml中我有以下使用帶有spring3,MyBatis的,和MyBatis的彈簧MapperScannerConfigurer

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="formularyDb" /> 
    <property name="configLocation" value="file:/web/sites/drugformulary-spring/config/mybatis-config.xml" /> 
    <property name="mapperLocations" value="file:/web/sites/drugformulary-spring/mappers/*.xml" /> 
    <!--<property name="mapperLocations" value="classpath*:org/myd/formulary/mappers/*.xml" />--> 
</bean> 
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
    <constructor-arg index="0" ref="sqlSessionFactory" /> 
</bean> 

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <!--<property name="basePackage" value="org.myd.formulary.drugmaster.dao" />--> 
    <property name="basePackage" value="org.myd.formulary.drugmaster" /> 
</bean> 

,如果我有 屬性名= 「basePackage」 值=「org.myd .formulary.drugmaster」 ,我在org.myd.formulary.drugmaster.dao DAO(DrugMasterDao)未找到我得到的*錯誤:

無效的綁定聲明(未找到):

但是,如果我將其更改爲屬性名=「basePackage」值=「org.myd.formulary.drugmaster.dao,DrugMasterDao發現

我想有吾道在其控制器相同的程序包和服務。所以我想知道我如何做到這一點(使用MapperScannerConfigurer)與不同的包在不同的包?他們將全部在org.myd.formulary

回答

0

這是最後的工作

<bean id="drugmasterScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="org.myd.formulary.**.dao"/> 
</bean> 
0

你應該看看jpetstore代碼結構如何。 Mapper接口是爲了映射xml配置中定義的sql語句,然後您可以簡單地將automagicaly創建的映射器bean注入或自動裝入DAO bean。讓說(假設映射器接口MyMapper):

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="org.myd.formulary.drugmaster.persistence" /> 
</bean> 

<bean id="myDAO" class="org.myd.formulary.drugmaster.dao.MyDAO"> 
    <property name="mapper" ref="myMapper" /> 
</bean> 
+0

感謝您回覆。我最初看過petstore,但它在一個包中包含了所有的持久性接口。我試圖保持我們的原始結構(Spring的早期版本和使用ibatis),我們的持久性接口(Dao's)與控制器和服務在同一個包中。我有自動映射器豆創建好,只有當我把它們都放在同一個包 - – randy

+0

我沒有使用它,但你有沒有考慮使用?根據文檔遞歸搜索包,你可以定義標記接口。 –

+0

我試過但沒有工作必須添加 ,所以它看起來像不會遞歸搜索其他包。我將去研究mybatis:掃描並查看是否有一些可設置的參數 – randy