初始化spring cloud配置客户端,用于SDK开发

时间:2016-07-22 02:36:35

标签: spring spring-boot spring-cloud-config

这个问题与此existing question

有些相似

我仍在尝试导航或尝试找到正确的弹簧启动代码,我可以自定义。我需要开发java SDK,它连接现有的配置服务器并为key提供值。此SDK将用于java应用程序,它可能是也可能不是spring应用程序。 QA将使用相同的SDK进行配置服务器的回归测试。

所以问题是,如果给出

  1. 配置服务器网址
  2. 申请名称
  3. 活动个人资料(不需要标签,它将是默认主人), 我可以初始化一些配置客户端类,它将为我提供简单的方法,如 public String getKeyValue(final String key)
  4. 我正在查看类的来源,例如 ConfigServicePropertySourceLocator CompositePropertySource ConfigClientAutoConfiguration ConfigServiceBootstrapConfiguration 等。

    我是否需要手动构建Environment对象?如果是,怎么样?

1 个答案:

答案 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&环境已初始化。