动态数据源有什么意义?

在 Spring 的基础上搞个动态数据源,加一个 @Dynamic 之类的 annotation 切换数据源有什么意义?比起直接使用 @Transactional 注解又有什么不同呢?

下面是 Spring 利用 @Transactional 实现的伪代码,与动态数据源有什么区别吗?或者动态数据源还做了哪些额外的事情?

@Bean

public 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

回到顶部