eclipse 使用maven 构建springboot+mybatis+多数据源+aop
来源:互联网 发布:中国航空制造业知乎 编辑:程序博客网 时间:2024/05/24 06:49
本文转载至:http://www.cnblogs.com/java-zhao/p/5415896.html
1、项目截图
1、UserDao.java
package com.zzg.myboot.dao;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import com.zzg.myboot.datasource.DatabaseContextHolder;import com.zzg.myboot.datasource.DatabaseType;import com.zzg.myboot.domain.User;import com.zzg.myboot.mapper.UserMapper;@Repositorypublic class UserDao { @Autowired private UserMapper mapper; public int deleteByPrimaryKey(Long id){ //DatabaseContextHolder.setDatabaseType(DatabaseType.write); return mapper.deleteByPrimaryKey(id); } publicint insert(User record){ //DatabaseContextHolder.setDatabaseType(DatabaseType.write); return mapper.insert(record); } publicint insertSelective(User record){ //DatabaseContextHolder.setDatabaseType(DatabaseType.write); return mapper.insertSelective(record); } publicUser selectByPrimaryKey(Long id){ //DatabaseContextHolder.setDatabaseType(DatabaseType.read); return mapper.selectByPrimaryKey(id); } public int updateByPrimaryKeySelective(User record){ //DatabaseContextHolder.setDatabaseType(DatabaseType.write); return mapper.updateByPrimaryKeySelective(record); } publicint updateByPrimaryKey(User record){ //DatabaseContextHolder.setDatabaseType(DatabaseType.write); return mapper.updateByPrimaryKey(record); } }
说明:需要注销设置数据源key的那一句代码
2、DataSourceAspect
package com.zzg.myboot.datasource;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.springframework.stereotype.Component;import org.springframework.util.StringUtils;@Aspect@Componentpublic class DataSourceAspect { @Before("execution(* com.zzg.myboot.dao.*.*(..))") public void setDataSourceKey(JoinPoint point){ // 获取到当前执行的方法名 String methodName = point.getSignature().getName(); System.out.println("方法名为:"+methodName); if (isSlave(methodName)) { // 标记为读库 System.out.println("标记为读库"); DatabaseContextHolder.setDatabaseType(DatabaseType.read); } else { // 标记为写库 System.out.println("标记为写库"); DatabaseContextHolder.setDatabaseType(DatabaseType.write); } } /** * 判断是否为读库 * * @param methodName * @return */ private Boolean isSlave(String methodName) { // 方法名以query、find、get开头的方法名走从库 return StringUtils.startsWithIgnoreCase(methodName, "select"); }}
效果截图:
0 0
- eclipse 使用maven 构建springboot+mybatis+多数据源+aop
- eclipse 使用maven 搭建 springboot+mybatis + 多数据源
- eclipse 使用maven 构建 springboot+mybatis
- springboot + mybatis + 多数据源 (AOP实现)
- springboot-druid-mybatis多数据源使用
- springboot + mybatis + 多数据源
- SpringBoot+Mybatis多数据源
- springboot + mybatis + 多数据源
- eclipse 使用maven 构建springboot 程序
- eclipse 使用maven构建 springboot +swagger
- eclipse 使用maven 构建springboot +log4j
- eclipse 使用maven 构建springboot +lombok
- eclipse 使用maven构建springboot+定时任务
- eclipse 使用maven 构建springboot+注入servlet
- SpringBoot、MyBatis配置多数据源
- springboot+mybatis配置多数据源
- springboot多数据源(mybatis)
- Springboot MyBatis多数据源切换
- iOS开发xib添加常用的KeyPath修改属性
- Android连接MySQL方法,测试成功
- Android BSP成长计划随笔之虚拟设备搭建和input系统
- Android面试题收集
- 启动Application喝入口Activity的生命周期方法顺序
- eclipse 使用maven 构建springboot+mybatis+多数据源+aop
- 用C#来学习唐诗三百首和全唐诗
- 单链表和双向循环链表的创建、初始化、以插入(一)
- 高性能MySQL之运行机制
- uboot下init_sequence_f函数之dram_init
- BZOJ2756 【scoi2012】奇怪的游戏(二分+网络流)
- Tomcat的三种模式及并发调优
- c++ primer 练习 2.39、2.40、2.41、2.42
- 获取下一个英文字母java