开发一个微信小程序后台,建立websocket 长连接,需要后台开启定时任务,

定时任务定时查库,相应前台

但是具体执行过程中一直在报空指针错误,最后定位到service 为空,无法调用其相关的方法导致的

于是我尝试不用@Autowired 注入实例,自己new ,但是还是失败了,报空指针

这是spring的一个Bug ,需要手动去配置一个类,主动获取实例,在定时任务中(继承TimerTask类),@Autowired 是失效的,无法注入

解决方案如下:

1.首先添加一个工具类,就是application

应注意,同样需要注入添加 @Compent注解

package com.cskaoyan.carparking.utils;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component; /**
* @Auther: YangTao
* @Date: 2019/2/21 0021
* 配置类,解决定时任务无法注入的问题
*/
@Component
public class ApplicationContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; public static ApplicationContext getApplicationContext() {
return applicationContext;
} @Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtil.applicationContext = applicationContext; } public static Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}

2.在我们的servcie的实现类注解添加名字,以便我们获取

3.我们在需要的定时任务类中获取service实例就可以使用了

StopService stopService = (StopService) ApplicationContextUtil.getBean("myService");

  

最新文章

  1. Android实现圆形图片
  2. CSS3动画效果结合JS的轮播
  3. Linux内核源码分析方法
  4. poj 1986 Distance Queries
  5. Storm技术结合
  6. JDK自带方法实现RSA数字签名
  7. Android 高手进阶,自己定义圆形进度条
  8. MAVEN项目环境搭建
  9. Java使用RabbitMQ之消息确认(confirm模板)
  10. .net的架构模式
  11. dhttp与IdCookieManager处理登陆过程
  12. 配置named服务之前的 相关术语意思
  13. C++结构变量数据对齐问题
  14. bzoj1607
  15. List,Set和Map详解及其区别和他们分别适用的场景
  16. java concurrent之ReentrantLock
  17. spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
  18. xshell过期了怎么办,是学生就用学生版吧
  19. Java多线程 -join用法
  20. 十二. 网络与数据库编程1.IP地址和InetAddress类

热门文章

  1. Linq语句jion on后指定多个条件
  2. 常用算法和Demo(Java实现)(持续更新)
  3. A锚点实现,滚动页面内容改变tab选项
  4. 学习创建spring boot
  5. Ubuntu 18.04 下 Redis 环境搭建
  6. 《用Python写爬虫》学习笔记(二)编写第一个网络爬虫
  7. Archery:开源漏洞评估和管理工具
  8. springboot 多端口启动
  9. jvm参数及分析工具
  10. jq后加标签的事件(live事件)