SpringBoot注册一个类的特定实例

时间:2017-05-26 10:19:21

标签: spring-boot

在SpringBoot中,我想用DI容器注册一个特定的实例(我实例化的实例)。我在下面写了一些伪代码,以显示我所追求的内容,但我似乎无法找到相关文档,或者它是否可能。

一些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);

1 个答案:

答案 0 :(得分: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);