Я видел сотни примеров этого:
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource("classpath:applicationContext.xml")
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}
И я уже много часов на кроличьей тропе.
Я строю каркас ....и мне нужно загрузить (несколько зависимостей, не все из них ...) из файла внедрения зависимостей xml (он же, "beans"):
applicationContext.xml
и мне нужноназвать динамическим, не жестко запрограммированным.
String myValue = "DefaultEnvVarValue";
String envValue = System.getenv("MYENVVARIABLENAME");
if (null != envValue )
{
myValue=envValue;
}
String topLevelAppContextFileName = "applicationContext." + myValue + ".xml";
Без springboot я бы сделал следующее:
ApplicationContext context = new ClassPathXmlApplicationContext(topLevelAppContextFileName);
Есть ли способ осуществить это с помощью SpringBoot?
Я обнаружил PropertySourcesPlaceholderConfigurer для файлов свойств, но не могу найти ничего для внедрения зависимостей.
Sidenote:
До того, как я получу комментарий "xml bad", большинство моих зависимостей основаны на аннотациях,Но я создаю среду, которую могут использовать другие, и поэтому мне нужно несколько из них, чтобы они были управляемы xml ... иначе, у меня есть законная причина, чтобы некоторые из DI были управляемыми xml.