项目中AOP的使用-读写分离

本文介绍了一个项目的读写分离实现方式,通过AOP技术依据方法名判断读写操作,并选择不同的数据库资源,以此减轻数据库压力并提升系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在最近做的项目中为了提高系统的性能,提高并发和负载能力,减少数据库压力.我们对项目进行了读写分离!

在我们这个项目中,读写分离具体应用为:

       1.使用切面类根据service的方法名,来区分使用哪个数据库

       2.方法名需要遵循一点的规范

       3.统一查询使用一个库,对数据库进行操作使用另一个库

@Aspect
@Component
public class DataSourceAspectUtil {
	@Before("execution(* xxx.xxx.service.*.*(..))")
    public void setDataSourceKey(JoinPoint point){
		String methodName=point.getSignature().getName();
		if (StringUtils.isNotBlank(methodName)&&(methodName.contains("get")||methodName.contains("select")||methodName.contains("query"))) {
			 DatabaseContextHolder.setDatabaseType(DatabaseType.db1);
		}else {
			 DatabaseContextHolder.setDatabaseType(DatabaseType.db2);
		}
    }
}

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值