java学习笔记(四):整合Mybatis框架其中的常用xml标签
最近难得有很多空闲时间,想接着来完成之前做了一半的毕业设计。今天重新拾起的时候发现很多标签都忘了意思,标签的用法都已经混淆。只好在此做个记录,再次加深自己的印象,避免再次出现这次情况。
Spring整合Mybatis框架的用到的标签
1.扫描Dao层的接口注入到Spring容器中
<bean id="mapperScannerConfigurer"
class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="xxx"></property>
</bean>
MapperScannerConfigurer的作用就是扫描你指定的xxx路径下的所有Mapper接口,产生对应的代理类并且将他们加入到Spring容器中。值得注意的是MapperScannerConfigurer顺带帮忙完成了接口对应crud注解扫描的操作,所以我们也无需去mybatis主配置文件中专门配置注解扫描标签。
多说一句,在Spring中有这个标签
<context:component-scan base-package="xxx">
</context:component-scan>
它是扫描@Component,@Controller,@Service,@Repository,@Configuration注解的类并将它加入到Spring容器。以下是官方文档对应的解释:
重要的是,它只能扫描类,所以如果我们想用这个标签来替代上面的标签,我们只能手把手的生成对应的Dao实现类加上@Repository注解才行。而MapperScannerConfigurer就省事很多,它会帮我们对应生成代理实现类。
2.Spring配置Mybatis的主配置文件位置
<!-- 配置sqlsession工厂-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="druidDataSource"></property>
<!-- mybatis配置文件位置-->
<property name="configLocation" value="classpath:xxx.xml"></property>
</bean>
我们可以在SqlSessionFactoryBean中配置对应的属性configLocation,来指明Mybatis的主配置文件的位置。
Mybatis框架的主配置文件用到的标签
1.配置映射配置文件,实现注解方式和xml方式混用
<mappers>
<package name="xxx"/>
</mappers>
mappers下的package标签就是指明xxx路径下的所有与接口同名的xml映射配置文件。这里一定要注意xml映射配置文件要和接口同名
而其实Mybatis是可以使用注解和xml配置文件混用的,如前面MapperScannerConfigurer说的,前面我们其实已经把注解扫描顺带配置好了。所以此时我们已经可以实现两者的混用了。
2.配置实体类别名
<typeAliases>
<!-- 该包下的所有类都有开头小写的别名-->
<package name="xxx"/>
</typeAliases>
typeAliases下的package标签用于指明xxx路径下所有类都有对应开头小写的类名的别名。不然我们每次指定对应实体类类型的时候都得写他们的全限定类名,实在是麻烦
小结
把以上的配好基本上就已经把mybatis整合进去了,剩下的配置基本都是关于自己业务所需要的。总体的步骤也不是很多,注意的是不要把一些标签的作用弄混淆,有些标签看起来很相似但是实际作用不同。在平时自己学习的时候要尽量对每一步都弄懂,能够很有效的提升自己。努力努力再努力!