鍍金池/ 問答/Java  HTML/ 多module開發(fā)時如何讓一個module可以掃描到并使用另一個module中的

多module開發(fā)時如何讓一個module可以掃描到并使用另一個module中的實體?

mybatis配置文件中的Alias掃描包配額配置如下

<typeAliases>
    <package name="com.gs.AModule.entity"/>
    <package name="com.gs.BModule.entity"/>
</typeAliases>

A和B兩個module包結(jié)構(gòu)一樣,A的entity中有@Alias(“AProjectReview”)AProjectReview.java,在B的mapper.xml中使用type=“AProjectReview”的時候項目編譯通過,運行報錯提示找不到AProjectReview該類

將AProjectReview.java copy到B包之后能正常。

請問如何在不拷貝的情況下解決該問題?

spring-mybatis.xml的配置:

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSources"/>
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <property name="mapperLocations">
        <array>
            <value>classpath:com/gs/A/dao/**/*.xml</value>
            <value>classpath:com/gs/B/dao/**/*.xml</value>
        </array>
    </property>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.gs.A.dao,com.gs.B.dao"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
回答
編輯回答
兮顏

本地之外的,jar包中的,需要用classpath*

classpath*:com/gs/A/dao/**/*.xml

從你的評論中我理解:B依賴了A中的內(nèi)容,但是A的打包形式是war。

有兩種方式:

  1. 將A包構(gòu)建的時候打包為jar包,然后在B的pom中依賴(這個方法應(yīng)該和你評論中說的那個是一樣的)
  2. 將共用的內(nèi)容單獨成為一個Module,然后A和B都引用這個jar包中的內(nèi)容。(個人推薦用這種)
2017年8月22日 09:21