在使用aop正常执行之前执行sql语句

时间:2013-10-10 16:48:43

标签: sql spring jdbc aop multi-tenant

我正在尝试用spring创建一个Multitenant应用程序。

我正在尝试为PostgreSql数据库中的每个租户设置不同的架构。

我首先创建了TenantAwareDataSource扩展org.springframework.jdbc.datasource.AbstractDataSource,基本上我管理了org.apache.commons.dbcp.BasicDataSource的地图,为每个租户配置了setConnectionInitSqls()。 (项目之前的数据源是org.apache.commons.dbcp.BasicDataSource

但随后与朋友讨论,我们提出了改变使用方面(aop)执行的每个语句的模式的想法,只需在正常执行之前添加set search_path to语句。

这可以大大简化与数据库连接过多(在任何给定时间为每个租户建立连接池)相关的问题。

是否有人使用AOP执行了其他声明? 要克服的任何陷阱?

我正在考虑放回org.apache.commons.dbcp.BasicDataSource并拦截java.sql.Statements.exe *(..)

我对Spring持久性不太熟悉。或者SQL语句执行拦截(haha)。 可以吗?

我找到了this article,但我认为我不需要为每个连接获取引用。 我是对的吗?

还找到this one。作者正在使用org.springframework.jdbc.core.JdbcOperations。我不确定我的Spring Roo生成的项目是什么情况。

谢谢大家。

0 个答案:

没有答案