我正在创建一个Java应用程序,它根据特定的条件/配置实例化一个SpringBoot应用程序来接收一些HTTP消息.
我的问题是,我有一个ReceiverService
,它需要使用一些在SpringBoot应用程序之外创建的变量.Is there a way to pass local java variables (from inside the application, not outside like the shell or files) to SpringBoot components?
示例:
我有一个Manager
对象,根据某些条件,它定义了一个变量param
,我想在SpringBoot组件ReceiverService
中使用它.
public class Manager {
public Manager(bool condition) {
String param = "foo";
if (condition) {
param = "bar";
}
ReceiverApp receiver = new ReceiverApp(); // init SpringBoot app
}
}
SpringBoot应用程序:
@SpringBootApplication
public class ReceiverApp {
public ReceiverApp() {
SpringApplication.run(ReceiverApp.class);
}
@Component
public class ReceiverService implements InitializingBean {
final CustomObject obj1 = new CustomObject(param);
@Override
public void aFunction() throws Exception {
MyConfig config = MyConfig.build(param);
}
}