这个问题与此existing question
有些相似我仍在尝试导航或尝试找到正确的弹簧启动代码,我可以自定义。我需要开发java SDK,它连接现有的配置服务器并为key提供值。此SDK将用于java应用程序,它可能是也可能不是spring应用程序。 QA将使用相同的SDK进行配置服务器的回归测试。
所以问题是,如果给出
我正在查看类的来源,例如 ConfigServicePropertySourceLocator , CompositePropertySource , ConfigClientAutoConfiguration , ConfigServiceBootstrapConfiguration 等。
我是否需要手动构建Environment对象?如果是,怎么样?
答案 0 :(得分:0)
我取得了一些成功。为其他人发布可能的答案以进一步微调它。
@SpringBootApplication
public class ConfigSDKApp {
@Autowired
public SomeSpringBean someBean = null;
private static ConfigSDKApp INSTANCE = null;
public synchronized static ConfigSDKApp getInstance(String[] args) {
if (null != INSTANCE) {
return INSTANCE;
}
SpringApplication sprApp = new SpringApplication(ConfigSDKApp.class);
sprApp.setWebEnvironment(false);
ConfigurableApplicationContext appContext = sprApp.run(args);
ConfigSDKApp app = appContext.getBean(ConfigSDKApp.class);//new ConfigSDKApp();
INSTANCE = app;
return INSTANCE;
}
}
它是一种单例类(但是公共构造函数)。因此代码味道。 此外,如果此SDK与springboot客户端一起运行,该怎么办? ApplicationContext&环境已初始化。