java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
近些日子在做一个项目,在项目中需要用到spring的定时任务,但是在操作数据库的时候发现总是不能正确的进行数据的插入,经过查看才发现:是因为service层不能够通过普通的方法注入到action,所以这样就不能够执行service层,进而执行数据库的操作。
解决方法:这时需要配置一个service注入的工具类,代码如下:
一、工具类
public class ApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public void setApplicationContext(ApplicationContext applicationContext) {
ApplicationContextUtil.applicationContext = applicationContext;
}
public static Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}
}
二、配置bean
<bean id ="applicationContextUtil" class ="org.sihai.soil.util.ApplicationContextUtil" ></bean >
三、定时器中通过ApplicationContextUtil类,获得service。
realmEbi = (RealmEbi) ApplicationContextUtil.getBean("realmEbi");
realmEbi.insertHour(RealmApplianceModel.sendData3);
完美解决了,这样我们就可以获取到service对象进行相对应的业务处理,而不需要再创建jdbc来操作了。
java学习群669823128
java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)的更多相关文章
- spring boot: scope (一般注入说明(一) @Autowired注解)
实例一: DiConfig 文件: package di; import org.springframework.context.annotation.ComponentScan; import or ...
- 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz
1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...
- Java 最常见 200+ 面试题全解析:面试必备
本文分为十九个模块,分别是: Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Clou ...
- Java 最常见 200+ 面试题 + 全解析
本文分为十九个模块,分别是: Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Clou ...
- paip. 解决java程序不能自动退出
paip. 解决java程序不能自动退出 原因:有东西在运行,所以,不能自动退出.. 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址: ...
- 如何用比较快速的方法掌握Spring的核心——依赖注入,Java web轻量级开发面试教程 读书笔记
我们知道,Java方面的高级程序员一定得掌握Spring的技能,其中包括Spring 依赖注入(IOC),面向切面(AOP),和数据库的整合(比如和Hibernate整合或声明式事务等)以及Sprin ...
- Spring的三种注入方式(Setter、构造函数和自动注入)
一.Setter注入 这里我是希望在Student.java中调用Course.java中的内容. public class Course { public String name = "数 ...
- 死磕 java同步系列之CyclicBarrier源码解析——有图有真相
问题 (1)CyclicBarrier是什么? (2)CyclicBarrier具有什么特性? (3)CyclicBarrier与CountDownLatch的对比? 简介 CyclicBarrier ...
- 死磕 java同步系列之ReentrantLock源码解析(二)——条件锁
问题 (1)条件锁是什么? (2)条件锁适用于什么场景? (3)条件锁的await()是在其它线程signal()的时候唤醒的吗? 简介 条件锁,是指在获取锁之后发现当前业务场景自己无法处理,而需要等 ...
随机推荐
- centos7.3下ScyllaDB1.6安装
转自:http://10710016.blog.51cto.com/10700016/1900483 ScyllaDB 安装配置 1.说明: scylladb支持centos7.2 64位 及以上版本 ...
- pyenv常用命令
pyenv使用教程 安装 Mac brew install pyenv brew install pyenv-virtualenv 配置 echo 'eval "$(pyenv init - ...
- 4.8 Routing -- Specifying The URL Type
1. 默认的路由器使用浏览器的hash来加载应用程序的开始状态并且当你移动时同步保持.目前,这依赖于浏览器中存在的hashchange事件. 2. 假设下面的路由器,输入/#/posts/new将会把 ...
- WebService—CXF—实现接口发布和客户端调用
(一)接口发布的几种方式 定义接口: @WebService(targetNamespace="http://www.itfad.net/queryUser") public in ...
- Broken pipe错误原因
这个异常是由于以下几个原因造成. 1.客户端再发起请求后没有等服务器端相应完,点击了stop按钮,导致服务器端接收到取消请求. 通常情况下是不会有这么无聊的用户,出现这种情况可能是由于用户提交了 ...
- QML类型说明-ParallelAnimation
ParallelAnimation ImportStatement: import QtQuick2.2 Inherits: Animation DetailedDescription S ...
- Linux /python --- zipinfo命令
Linux zipinfo命令用于列出压缩文件信息. 执行zipinfo指令可得知zip压缩文件的详细信息. zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本 ...
- ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程【转】
本文转载自:https://blog.csdn.net/zhaoyu106/article/details/52793183 le/details/52793183 写在前面 一些废话 接触深度学习已 ...
- Cuda 9.2 CuDnn7.0 官方文档解读
目录 Cuda 9.2 CuDnn7.0 官方文档解读 准备工作(下载) 显卡驱动重装 CUDA安装 系统要求 处理之前安装的cuda文件 下载的deb安装过程 下载的runfile的安装过程 安装完 ...
- 【Python】模块学习之matplotlib柱状图、饼状图、动态图及解决中文显示问题
前言 众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用 ...