Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有运行时配置的guice JpaPersistModule_Jpa_Dependency Injection_Guice_Guice Persist - Fatal编程技术网

具有运行时配置的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属性映射到处都是通过引用注入的,所以我的运行时更改应该是可见的,但如果将来发生更改呢

解决这些冲突的正确方法是什么