websocket调用数据库报错
spring默认是单例模式,websocket是多对象模式,直接注入会冲突,空指针异常
需要上下文管理取得
上下文工具类
@Component
public class MyApplicationContextUtil implements ApplicationContextAware {
/**
* 当前IOC
*
*/
private static ApplicationContext applicationContext;
/**
* 设置applicationContext
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
MyApplicationContextUtil.applicationContext = applicationContext;
}
public static String[] getBeanNamesForType(Class<?> clazz ){
return applicationContext.getBeanNamesForType(clazz);
}
public static <T> T getBean(String beanName,Class<T> clazz) {
return applicationContext.getBean(beanName,clazz);
}
public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
}
//直接在业务代码中获取实例即可
//获取传感器实例对象
//示例
SensorServiceI sensorService = MyApplicationContextUtil.getBean(cn.onefox.sensor.service.SensorServiceI.class);
sensorService.sendSensor(jsonObject);