java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)

Posted rese-t

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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+Quartz无法自动注入bean问题

Spring第七弹—依赖注入之注解方式注入及编码解析@Resource原理

Springboot 定时任务,service层无法注入问题详细解决

spring+quartz 实现定时任务三

SpringBoot 定时任务的使用

Java教程!java源码模拟面试解析指南