Spring Boot 2系列(五十):Spring AOP 实现动态数据源切换

项目可能会有多个数据源,例如读写分离至少有两个数据库,或一个主库多个从库,或一个系统里面不同业务拆分有各自的数据库,在使用时需要确定使用正确的数据源。

Spring 多数据源实现方式大概有2种,一种是新建多个 MapperScan 扫描不同 Mapper 包,另一种是继承 AbstractRoutingDataSource 实现动态路由。

本篇是基于 Spring AOP 实现数据源动态路由,多个 MapperScan 扫描不同的 Mapper 包的方式可参考 Spring Boot 2实践系列(三十九):Spring Boot 2.x + Mybatis + Druid + Common Mapper 配置多数据源

阅读更多

Spring Boot 2系列(四十九):Spring AOP 实现统一记录请求和响应日志,解密并重设置请求入参值

在实际开发中,可能需要打印方法的入参和返回的数据以帮助出现问题时可快递定位.

常规的做法在方法中的业务处理之前使用 Logger 打印方法入参,在业务处理之后打印结果数据,这样就会在很多方法中存在重复代码。

像打印日志这类跨多个业务和模块的需求,可以通过 Spring AOP 来统一实现,完全省略了方法中手动添加 Logger 的操作。

阅读更多

Java 日志工具使用

日志的简单使用,两种方式:org.apache.commons.logging.Log日志包,org.apache.log4j.Logger日志包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static final Log log = LogFactory.getLog(this.getClass());

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static Logger logger = LoggerFactory.getLogger(xxxClass.class);

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
private static final Logger logger = LogManager.getLogger(xxxClass.class);

import java.util.logging.Logger;
Logger logger = Logger.getLogger("serviceLogger");