我们的项目结构如下:
- basePkg
|- pkg1
|- dao1
|- mybatis-mappers...
|- classes...
|- pkg2
|- dao2
|- mybatis-mappers...
|- classes...
现在,每当我们将mybatis映射器添加到任何dao包时,我们都必须添加一个新的条目,如下所示:spring context.xml
<bean id="testDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="basePkg.pkg1.dao1.testDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
为每个新映射器添加新条目变得很麻烦。我找到的另一种方法是使用<mybatis:scan \>
。我对这种方法面临两个问题:
basPkg.dao*
包提供单独的扫描元素。相反,有没有办法使用单个扫描元素并使用正则表达式指定所有dao
子包? 答案 0 :(得分:0)
我不必这样说:
<bean id="testDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="basePkg.pkg1.dao1.testDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
使用的库:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
确保
如果XML文件位于src \ main \ java中,则需要以下内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
希望以上有所帮助。