具有运行时配置的guice JpaPersistModule
我需要与具有运行时配置的guice JpaPersistModule,jpa,dependency-injection,guice,guice-persist,Jpa,Dependency Injection,Guice,Guice Persist,我需要与JpaPersistModule共享数据源。此数据源由guice injector提供 现在的问题是,我必须在配置阶段构建模块,但数据源仅在运行时可用 目前我有以下代码: public class MyJpaConfigurationModule implements Module { private Map<String, Object> jpaProperties = new HashMap<>(); private Module jpaModu
JpaPersistModule
共享数据源。此数据源由guice injector提供
现在的问题是,我必须在配置阶段构建模块,但数据源仅在运行时可用
目前我有以下代码:
public class MyJpaConfigurationModule implements Module {
private Map<String, Object> jpaProperties = new HashMap<>();
private Module jpaModule = new JpaPersistModule("peristenceUnit").properties(jpaProperties);
public void configure(Binder binder) {
binder.requestInjection(this);
binder.install(jpaModule);
}
@Provides @Singleton
public DataSource provideDatasource() {
return ..... // some data source
}
@Inject
public void setJpaProperties(DataSource dataSource, PersistService persistService) {
jpaProperties.put("dataSource", dataSource);
persistService.start();
}
}
公共类MyJPA配置模块实现模块{
私有映射jpaProperties=newhashmap();
私有模块jpaModule=新的JpaPersistModule(“peristenceUnit”)。属性(JPapProperties);
公用作废配置(活页夹){
粘合剂。请求注入(本);
活页夹。安装(jpaModule);
}
@提供@Singleton
公共数据源提供的数据源(){
return….//某个数据源
}
@注入
public void setJpaProperties(数据源数据源PersistService PersistService){
jpaProperties.put(“数据源”,dataSource);
persistService.start();
}
}
我已经检查过了,似乎jpa属性映射到处都是通过引用注入的,所以我的运行时更改应该是可见的,但如果将来发生更改呢
解决这些冲突的正确方法是什么