问题
I have two applications:
Application
child: it's a Spring app with XML Schema-based configuration. So We have anapplicationContext.xml.Application
parent: Spring Boot app. Uses applicationchildas a library.
Is possible to load all beans defined in child XML, and put them into parent context?
回答1:
Yes it is possible.
From javadoc:
As mentioned above, @Configuration classes may be declared as regular Spring definitions within Spring XML files. It is also possible to import Spring XML configuration files into @Configuration classes using the @ImportResource annotation. Bean definitions imported from XML can be injected using @Autowired or @Import.
Here an example from the same javadoc that mix beans loaded from xml in beans defined in configuration class:
@Configuration
@ImportResource("classpath:/com/acme/database-config.xml")
public class AppConfig {
@Inject DataSource dataSource; // from XML
@Bean
public MyBean myBean() {
// inject the XML-defined dataSource bean
return new MyBean(this.dataSource);
}
}
来源:https://stackoverflow.com/questions/43072510/spring-boot-load-beans-from-context-xml-in-library