关于spring AbstractRoutingDataSource和切面执行顺序问题

我想spring AbstractRoutingDataSource和spring aop配合使用,达到动态切换数据源的功能。
现在有一个问题是,如果我把aop before设置到service层上,发现一个请求过来会先进入
spring mvc的controller,然后再进入AbstractRoutingDataSource,最后才进去aop before中,
这样就导致不能在service层动态切换数据源,有解决方案吗?

5个回答

可以通过设置aspect的order 来调整执行顺序 设置 切换数据源的 order = 1 可以解决

qq_39854260
村长家的张二狗 真的很感谢,搞了半天! 百度到了你这个答案,算是解决了!
接近 2 年之前 回复
zc474235918
赵崇 回复lxlcxlm: 我通过这种方式 已经解决了
大约 2 年之前 回复
lxlcxlm
lxlcxlm 不能
大约 2 年之前 回复
zc474235918
赵崇 <aop:advisor advice-ref="aspect" pointcut-ref="reportPointcut" order="1"/>
大约 2 年之前 回复

请问你得问题解决了吗,我也是遇到同样的问题,先获取数据源再切换数据源,这样不对了就

xingkonglv
xingkonglv 这位童鞋,看你回答的日期还不远,求教有解决办法了吗
大约 3 年之前 回复

我也是按网上提供的办法搞了两天了,最后一点一点debug发现AbstractRoutingDataSource的determineCurrentLookupKey()执行时间还要早于切换数据源的切面,切面的order写成1都没用,好奇发文的人都没遇到这问题吗

楼主你解决了吗???我也遇到了这个问题

楼主你解决了吗???我也遇到了这个问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问