java / camel / spring / jpa应用程序中的动态配置

时间:2013-03-06 22:40:12

标签: java spring jpa apache-camel shiro

我使用java,camel,spring,shiro,c3p0和jpa编写了一个应用程序。 此应用程序需要连接到某些Web服务和一些数据库,现在它使用经典的spring propertyplaceholders和.prop属性文件进行静态配置。 我使用@Value注释在java类中注入属性,并使用带有$ {}占位符的spring定义数据源。 在配置中有web服务和数据库的url,用户名,密码,url,用户名,数据源密码。

现在我需要进行动态/多租户配置。我的意思是每个“客户”都可以拥有他的密码,并且这些登录/密码可以随时间变化。 使用shiro我可以向Subject添加一些数据,所以我可以添加当前属性并将它们放到我需要的地方。 但是,我如何继续使用@value注释? 而且,最重要的问题是,如何在运行时更改数据源参数? 我在c3p0文档中看到,使用getConnection(用户名,密码)和一对新的用户名和密码会创建一个新池并关闭旧池。但我不使用getConnection,因为只有EntityManager使用数据源。

请帮帮我! 谢谢, 马里奥

经过大量的搜索,我认为我可以这样做:

  • 属性使用来自commons配置的DynamicCombinedConfiguration,但我不知道如何告诉它从Shiro主题中读取租户ID
  • JPA从春天开始使用AbstractDataSource,但我不知道是否可以从Shiro主题中读取租户ID

你能告诉我我是否指向正确的方向?

再次感谢, 马里奥

0 个答案:

没有答案