我有一个简单的SpringBootApplication来设置JPA并定义一些Beans。
@SpringBootApplication
public class AnalysisApplication {
public static void main(String[] args) {
SpringApplication.run(AnalysisApplication.class, args);
}
@Autowired
SoftwareArchiveRepository swaRepository;
@Bean
SoftwareArchiveService swaService() {
return new SoftwareArchiveService(swaRepository);
}
@Bean
PlatformService platformService(@Autowired PlatformRepository platformRepository) {
return new JpaPlatformService(platformRepository);
}
// More Bean definitions omitted
}
我现在想在几个类中使用这个上下文,为我的应用程序执行一次设置,我将手动调用。虽然他们使用定义的bean,但它们实际上并不是应用程序的一部分 - 基本上我想执行一次性数据加载练习。
public class DatabaseLoader {
ApplicationContext context;
public static void main(String[] args) {
DatabaseLoader loader = new DatabaseLoader();
loader.run();
}
private void run() {
context = ??????
PlatformService service = context.getBean("platformService");
// etc etc
}
我需要做什么来初始化SpringBootApplication上下文,以便在不实际调用SpringApplication.run(AnalysisApplication.class,args)的情况下发生所有SpringBoot自动配置;