如何自定义注解重写@DS
时间: 2023-10-12 13:17:11 浏览: 189
如果您想要自定义注解并且重写@DS注解,可以按照以下步骤进行:
1. 创建一个注解类,例如@MyDS
```java
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyDS {
String value() default "default";
}
```
2. 创建一个AOP切面类,用于拦截@MyDS注解
```java
@Aspect
@Component
public class MyDSAspect {
@Around("@annotation(myDS)")
public Object around(ProceedingJoinPoint point, MyDS myDS) throws Throwable {
String dsName = myDS.value();
DynamicDataSourceContextHolder.setDataSource(dsName);
try {
return point.proceed();
} finally {
DynamicDataSourceContextHolder.clearDataSource();
}
}
}
```
3. 在需要使用数据源的类或方法上添加@MyDS注解
```java
@Service
public class UserServiceImpl implements UserService {
@Override
@MyDS("db1")
public List<User> listUser() {
return userDao.listUser();
}
}
```
这样就可以使用自定义的@MyDS注解来动态切换数据源了。
阅读全文