SpringBootでのmainメソッド注入サービス
1414 ワード
この文章を参考にする
スプリングbootでmainメソッドを使用すると通常はサービスを注入できませんが、後でこのような場合もある可能性がありますので、固定書き方で直接コピーすればいいツールクラスで行います.
次に注入が必要な場所で静的サービスを作成します
次に、mainメソッドを使用します.
スプリングbootでmainメソッドを使用すると通常はサービスを注入できませんが、後でこのような場合もある可能性がありますので、固定書き方で直接コピーすればいいツールクラスで行います.
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (SpringContextUtil.applicationContext == null) {
SpringContextUtil.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
public static T getBean(Class clazz) {
return getApplicationContext().getBean(clazz);
}
public static T getBean(String name, Class clazz) {
return getApplicationContext().getBean(name, clazz);
}
}
次に注入が必要な場所で静的サービスを作成します
private static Service service;
次に、mainメソッドを使用します.
public static void main(String[] args) {
SpringApplication.run(**Application.class,args);
ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
service = applicationContext.getBean(**Service.class);
}