动态数据源有什么意义?
在 Spring 的基础上搞个动态数据源,加一个 @Dynamic
之类的 annotation
切换数据源有什么意义?比起直接使用 @Transactional
注解又有什么不同呢?
下面是 Spring 利用 @Transactional
实现的伪代码,与动态数据源有什么区别吗?或者动态数据源还做了哪些额外的事情?
@Beanpublic TransactionManager tx1() {
return new TransactionManager(dataSource-1111);
}
@Bean
public TransactionManager tx2() {
return new TransactionManager(dataSource-2222);
}
@Transactional(transactionMnager="tx1")public void m1() {
}
@Transactional(transactionMnager="tx2")
public void m1() {
}
回答:
TransactionManager 顾名思义是一个事务管理器,可以理解成它是在你指定的dataSource外包裹了一个事务处理逻辑,添加@Transactional注解后的业务方法都会被事务包围,大多数业务都是查询为主,走事务会极大损失性能,而题主你通过两个事务管理器 在业务方法上指定不同的数据源,这只是spring的事务管理器的副作用。
两者是不同的东西
以上是 动态数据源有什么意义? 的全部内容, 来源链接: utcz.com/p/944571.html