我使用java,camel,spring,shiro,c3p0和jpa编写了一个应用程序。 此应用程序需要连接到某些Web服务和一些数据库,现在它使用经典的spring propertyplaceholders和.prop属性文件进行静态配置。 我使用@Value注释在java类中注入属性,并使用带有$ {}占位符的spring定义数据源。 在配置中有web服务和数据库的url,用户名,密码,url,用户名,数据源密码。
现在我需要进行动态/多租户配置。我的意思是每个“客户”都可以拥有他的密码,并且这些登录/密码可以随时间变化。 使用shiro我可以向Subject添加一些数据,所以我可以添加当前属性并将它们放到我需要的地方。 但是,我如何继续使用@value注释? 而且,最重要的问题是,如何在运行时更改数据源参数? 我在c3p0文档中看到,使用getConnection(用户名,密码)和一对新的用户名和密码会创建一个新池并关闭旧池。但我不使用getConnection,因为只有EntityManager使用数据源。
请帮帮我! 谢谢, 马里奥
经过大量的搜索,我认为我可以这样做:
你能告诉我我是否指向正确的方向?
再次感谢, 马里奥