我只是在學習 Spring Boot。我正在創建獨立的 Spring Boot 應用程式。我想使用 applicationContext.getBean("myGreetService") 檢索 bean。我這樣做只是為了學習目的。這不適用于實時專案。
我想在 Spring Boot 應用程式的 main() 方法中檢索 ApplicationContext。哪些代碼可用于在 main() 方法中獲取 applicationContext?
這就是我到目前為止所擁有的,我需要代碼來填充空白。
@SpringBootApplication
public class DemoBootApplication {
public static void main(String[] args) {
SpringApplication.run(DemoBootApplication.class, args);
// how can I access the application context here?
// i want to do: GreetService myService = applicationContext.getBean("myGreetService");
}
}
我使用的是 Spring Boot 2.6 和 IntelliJ 2021.2.3。
uj5u.com熱心網友回復:
SpringApplication#run 回傳應用程式背景關系,因此您可以執行以下操作:
@SpringBootApplication
public class DemoBootApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(DemoBootApplication.class, args);
ctx.getBean("myGreetService");
}
}
但這不是在 Spring 中做事的慣用方式。如果您只想在應用程式啟動后運行一些代碼,請使用ApplicationRunner:
@SpringBootApplication
public class DemoBootApplication {
public static void main(String[] args) {
SpringApplication.run(DemoBootApplication.class, args);
}
@Bean
ApplicationRunner applicationRunner(MyService myService) {
return args -> {
System.out.println(myService);
};
}
}
uj5u.com熱心網友回復:
你只需要注入ApplicationContext
@Autowired
private ApplicationContext context;
在 Spring Boot 應用程式的任何 bean/組件上,包括入口點類本身。
檢查這個:
- https://zetcode.com/springboot/applicationcontext/
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360709.html
標籤:弹簧靴
