多module开发时如何让一个module可以扫描到并使用另一个module中的实体?

mybatis配置文件中的Alias扫描包配额配置如下

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

A和B两个module包结构一样,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>
阅读 6k
1 个回答

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

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

从你的评论中我理解:B依赖了A中的内容,但是A的打包形式是war。

有两种方式:

  1. 将A包构建的时候打包为jar包,然后在B的pom中依赖(这个方法应该和你评论中说的那个是一样的)
  2. 将共用的内容单独成为一个Module,然后A和B都引用这个jar包中的内容。(个人推荐用这种)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题