啊 這個真心坑,百度到的東西讓我試了2天都沒結果,還是google到的結果靠譜。
在運維“虞書漂”的時候遇到要在工具類的static
方法中調用MessageService
發送消息。
現在親試可行的方法是
在Spring.xml
配置文件中注冊bean
-- StaticContextAccessor
@Component
public class StaticContextAccessor {
private static StaticContextAccessor instance;
@Autowired
private ApplicationContext applicationContext;
@PostConstruct
public void registerInstance() {
instance = this;
}
public static <T> T getBean(Class<T> clazz) {
return instance.applicationContext.getBean(clazz);
}
}
Spring.xml
文件中注冊
<bean class="project.system.util.StaticContextAccessor" />
然后在靜態方法中就可這樣調用
StaticContextAccessor.getBean(MessageService.class).method();