标签:xml 两种 spring 配置 sessionFactoryBean mybaits dataSource 整合
xml形式整合spring和mybaits
1.sqlSessionFactory的配置
1.xml文件的路径
2.dataSource (mybaits要查询数据库,所以dataSource是必须要的,用于连接数据库的配置)
<!-- sqlSessionFactory 1.spring-mybaits整合-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载 MyBatis 的配置文件 -->
<!--<property name="configLocation" value="SqlMapConfig.xml"/>-->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean>
2.MapperScannerConfigurer的配置
我们mapper接口的路径
<!-- Mapper 扫描器 2.spring-mybaits整合-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描 cn.wmyskxz.mapper 包下的组件 -->
<property name="basePackage" value="com.tx.mapper"/>
</bean>
注解的方式
1.SqlsessionFactory的配置 (跟上面的xml一致,需要以下两个配置),扫描配置信息
1.xml文件的路径
2.dataSource
/**
* 注意:这里是spring-mybaits整合里面的xm文件配置信息
* 1.配置数据源
* 2.扫描xml文件并解析
* @param dataSource
* @return
* @throws Exception
*/
@Bean // 带参数的bean ,有参数的bean方法。 spring会从ioc中找对应的bean注入,如果ico中没有会报错
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//这里配置xml扫描文件的信息
sessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml")); //mybatis的xml文件路径
return sessionFactoryBean;
}
2.配置路径和sqlSessionFactory
进入注解会发现 底层也向spring注册了MapperScannerConfigurer 类
@MapperScan(basePackages ="com.transcaltion.dao",sqlSessionFactoryRef="sqlSessionFactory")
补充:
进入到@MapperScan注解
进入MapperScannerRegistrar类该类 实现
ImportBeanDefinitionRegistrar接口 所以会调用 registerBeanDefinitions方法 (Bean工厂的后置处理器)
该方法里面就是把
MapperScannerConfigurer 类注册到我们的Bean定义信息里面,这个类就是上面我们xml里面配置的类
了解了上面两种方式对于之后看源码和springboot自动装配之mybaits会很有很好的作用
后续我会更新mybaits-autoconfiguration
标签:xml,两种,spring,配置,sessionFactoryBean,mybaits,dataSource,整合 来源: https://blog.csdn.net/sunshinezx8023/article/details/121145801
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。