栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring boot怎么整合Mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring boot怎么整合Mybatis

 最近刚接触spring boot,正是因为他的及简配置方便开发,促使我下定决心要用它把之前写的项目重构,那么问题来了,spring boot怎么整合mybatis呢,下面几个配置类来搞定。

在我的代码当中是实现了数据库读写分离的,所以代码仅做参考,如有需要可以加我微信:benyzhous

【后续更新】

1、文件结构

DatabaseConfiguration.Java用来获取数据库连接配置信息,配置从application.properties中读取

MybatisConfiguration.java也就是MyBatis配置核心入口,构建连接创建SqlSessionFactory

2、下面直接贴代码,有问题的话可以留言或者加我的微信公众号:cha-baba,或者个人微信号:benyzhous

application.yml 相关配置

# Server settings 
server: 
 port:8080 
 address:localhost 
# DATASOURCE 
jdbc: 
 driverClass: com.mysql.jdbc.Driver 
 url: jdbc:mysql://127.0.0.1:3306/local-kaishustory?useUnicode=true&characterEncoding=utf-8 
 username: root 
 password: root 
# SPRING PROFILES 
spring:   
 # HTTP ENCODING 
 http: 
  encoding.charset: UTF-8 
  encoding.enable: true 
  encoding.force: true 
# WeiXin Configuration 
weixin: 
 mp: 
  appid: xx 
  secret: ee 
  token: weixin 
  aeskey: 
# MyBatis 
mybatis: 
 typeAliasesPackage: com.modou.**.domain 
 mapperLocations: classpath:/com/modoumapper 
@Configuration 
@ConditionalOnClass({ EnableTransactionManagement.class, EntityManager.class }) 
@AutoConfigureAfter({ DatabaseConfiguration.class }) 
@MapperScan(basePackages={"com.modou.**.mapper","com.github.abel533.entity.mapper"}) 
public class MybatisConfiguration implements EnvironmentAware{ 
 private static Log logger = LogFactory.getLog(MybatisConfiguration.class); 
 private RelaxedPropertyResolver propertyResolver; 
 @Resource(name="writeDataSource") 
 private DataSource writeDataSource; 
 @Resource(name="readDataSources") 
 private List readDataSources; 
 @Override 
 public void setEnvironment(Environment environment) { 
  this.propertyResolver = new RelaxedPropertyResolver(environment,"mybatis."); 
 } 
 @Bean 
 @ConditionalOnMissingBean 
 public SqlSessionFactory sqlSessionFactory() { 
  try { 
   SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); 
   sessionFactory.setDataSource(roundRobinDataSouceProxy()); 
   sessionFactory.setTypeAliasesPackage(propertyResolver 
     .getProperty("typeAliasesPackage")); 
   sessionFactory 
     .setMapperLocations(new PathMatchingResourcePatternResolver() 
.getResources(propertyResolver 
  .getProperty("mapperLocations"))); 
   sessionFactory 
     .setConfigLocation(new DefaultResourceLoader() 
.getResource(propertyResolver 
  .getProperty("configLocation"))); 
   return sessionFactory.getObject(); 
  } catch (Exception e) { 
   logger.warn("Could not confiure mybatis session factory"); 
   return null; 
  } 
 } 
 @Bean 
 public RoundRobinRWRoutingDataSourceProxy roundRobinDataSouceProxy(){ 
  RoundRobinRWRoutingDataSourceProxy proxy = new RoundRobinRWRoutingDataSourceProxy(); 
  proxy.setWriteDataSource(writeDataSource); 
  proxy.setReadDataSoures(readDataSources); 
  proxy.setReadKey("READ"); 
  proxy.setWriteKey("WRITE"); 
  return proxy; 
 } 
 @Bean 
 @ConditionalOnMissingBean 
 public DataSourceTransactionManager transactionManager() { 
  return new DataSourceTransactionManager(writeDataSource); 
 } 
} 

Application.java

package com.modou.weixin; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.CommandLineRunner; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import com.modou.weixin.service.HelloWorldService; 
 
@Configuration 
@ComponentScan(basePackages={"com.modou.conf","com.modou.weixin"}) 
@EnableAutoConfiguration 
public class Application implements CommandLineRunner{ 
 @Autowired 
 HelloWorldService helloWorldService; 
 public static void main(String[] args) { 
  SpringApplication.run(Application.class, args); 
 } 
 @Override 
 public void run(String... args) throws Exception { 
  System.out.println(this.helloWorldService.print()); 
 } 
} 

3、maven pom.xml 相关依赖[我是基于我的多模块依赖,这里只是一个示意],其中配置了jrebel热部署插件,需要搭配jrebel6.2.1,具体配置和下载请转向 http://blog.csdn.net/xiaoyu411502/article/details/48047369

 
 
 4.0.0 
  
  com.modou.weixin 
  weixin-boot-parent 
  0.0.1-SNAPSHOT 
  ../weixin-boot-parent 
  
 weixin-boot-services 
 weixin-boot-services 
 http://maven.apache.org 
  
  UTF-8 
  1.2.4.RELEASE 
  
  
   
   com.modou.weixin 
   weixin-boot-sdk 
   ${project.version} 
   
   
   com.modou.weixin 
   mybatis-plugin-rw 
   ${project.version} 
   
   
   org.springframework.boot 
   spring-boot-starter-web 
   
   
   org.springframework.boot 
   spring-boot-starter-actuator 
   
   
   org.springframework.boot 
   spring-boot-starter-thymeleaf 
   
   
   org.springframework 
   spring-jdbc 
   
   
   javax.persistence 
   persistence-api 
   
   
   org.mybatis 
   mybatis 
   
   
   org.mybatis 
   mybatis-spring 
   
   
   com.alibaba 
   druid 
   
   
   mysql 
   mysql-connector-java 
   
   
   com.github.pagehelper 
   pagehelper 
   
   
   tk.mybatis 
   mapper 
   
   
   org.mybatis.generator 
   mybatis-generator-core 
   
  
 

以上所述是小编给大家介绍的Spring boot整合Mybatis的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号