第一次写webSocket 想操作数据库 但是一操作数据库就报空指针异常而且webSocket还断开连接
问题如下:添加操作数据库的方法就报错
没加操作数据库的方法时:
进入正题
原因:某个未被spring托管的类想调用一个被spring托管的对象的方法则会出现空指针的异常
代码如下:新建一个ApplicationHelper 类 一定要加Comopent注解
@Component("applicationHelper")
public class ApplicationHelper implements ApplicationContextAware{
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationHelper.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String beanName) {
// System.out.println(applicationContext);
return applicationContext.getBean(beanName);
}
}
改之前:
@Resource
private MessageService messageService;
改之后:
private MessageService messageService = (MessageService) ApplicationHelper.getBean("messageService");
然后完美运行!