2017-05-26 29 views
0

在SpringBoot中,我想用DI容器注册一个特定的实例(我实例化一个实例)。我已经写了一些下面的伪代码来显示我后面的内容,但我似乎无法找到相关文档或者甚至有可能。SpringBoot注册一个类的特定实例

一些JSON

{ 
    "host" : "0.0.0.0", 
    "port" : 8000, 
    "someSpecificProperty" : "fubar" 
} 

我想怎么写呢?

Configuration configuration = new JsonConfigurationFileReader('./config.json).Read(); 

new SpringApplicationBuilder(ServiceAController.class) 
     .register(Configuration.class, configuration) 
     .run(args); 

回答

0

我发现实现这一目标的方法是使用一个ApplicationContextInitializer。

SpringApplication application = new SpringApplicationBuilder(ServiceAController.class) 
         .build(); 

Configuration configuration = new JsonConfigurationFileReader('./config.json).Read(); 
application.addInitializers((ApplicationContextInitializer<ConfigurableApplicationContext>) applicationContext -> 
         applicationContext.getBeanFactory().registerResolvableDependency(Configuration.class, configuration)); 

application.run(args); 
相关问题