WebSocketServer文件中需要获取对应bean的service层,使用下面代码获取``
@Component
public class ApplicationContextUtil implements ApplicationContextAware {
/**
* 声明一个静态变量保存
*/
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtil.applicationContext=applicationContext;
}
public static <T> T getBean(Class<T> clazz){
return applicationContext.getBean(clazz);
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
}
然而在WebSocketServer中有时候获取不到,此时只需要在WebSocketServer文件上添加一个注解即可@DependsOn(“applicationContextUtil”)
含义:WebSocketServer依赖于applicationContextUtil,所以要让ApplicationContextUtil先注入bean中
其中applicationContextUtil就是上面获取bean的文件ApplicationContextUtil