静态方法中调用service
2017-08-18 本文已影响0人
pri17
啊 这个真心坑,百度到的东西让我试了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();