`
zyslovely
  • 浏览: 231197 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【zz】spring定时器实例

阅读更多
http://www.blogjava.net/maguangjun/articles/244030.html

package com.strongit.zwjc.infopush.vo;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import com.strongit.zwjc.common.dao.BaseDAO;
import com.strongit.zwjc.infopush.po.Afficheinfo;
import com.strongit.zwjc.infopush.po.InfopushDocClass;
import com.strongit.zwjc.infopush.po.Performance;
import com.strongit.zwjc.util.TimeKit1;

/**
 * 定一个定时查询的类
 */

public class ScheduledTimer {

    /**
     * 定时运行的方法
     */
    private BaseDAO baseDaoImpl;

    @SuppressWarnings({ "unchecked", "deprecation" })
    public void startRun() throws Exception {
        // 第一,查询类型表中的规则
        Calendar now = Calendar.getInstance();
        @SuppressWarnings("unused")
        int nowDay = now.get(Calendar.DAY_OF_MONTH);
        int nowMonth = now.get(Calendar.MONTH) + 1;
        List<InfopushDocClass> InfopushClassList = this.baseDaoImpl
                .findAll(InfopushDocClass.class);
        String docPushRule = "monthly:15";
        @SuppressWarnings("unused")
        String monthly = "";
        String strDay = "";
        int intDay = 0;
        String classId = "";
        String className = "" ;
        String orgId = "";
        String orgName = "orgName" ;
        //InfopushDoc infopushDoc = null;
        List infopushDocList = null ;
        Performance performance = null ;
        Afficheinfo afficheinfo = null ;
        String strSfficheinfo = "" ;
        List<Performance> performanceList = null ;
        Date performanceDate = TimeKit1.getDateByString(TimeKit1.now("short"));
        for (InfopushDocClass infopushDocClass : InfopushClassList) {
            docPushRule = infopushDocClass.getDocPushRule();
            classId = infopushDocClass.getClassId();
            orgId = infopushDocClass.getOrgId();
            monthly = docPushRule.split(":")[0];
            strDay = docPushRule.split(":")[1];
            intDay = Integer.parseInt(strDay);
            //此方法只能适应与 月报
            if (nowDay == intDay) {
                infopushDocList = this.baseDaoImpl
                        .findAll("FROM InfopushDoc idoc where idoc.infopushDocClass.classId='"
                                + classId
                                + "' and idoc.orgId = '"
                                + orgId
                                + "'");
                
                int totalsize = infopushDocList.size() ;
                
                performanceList = this.baseDaoImpl.findAll(Performance.class);
                if(totalsize>0){
                    boolean flag = false ;
                    for(Performance performance2:performanceList){
                        int performanceMonth = performance2.getPerformanceDate().getMonth()+1 ;
                        if(nowMonth==performanceMonth){
                            flag = true ;
                            break ;
                        }
                    }
                    if(flag){
                    }else{
//                        有数据 加分
                        className = infopushDocClass.getClassName() ;
                        orgName = infopushDocClass.getOrgName() ;
                        performance = new Performance() ;
                        performance.setClassId(classId);
                        performance.setOrgId(orgId);
                        performance.setOrgName(orgName);
                        performance.setClassName(className);
                        performance.setPerformanceDate(performanceDate);
                        performance.setScore(Long.valueOf("1"));
                        this.baseDaoImpl.insert(performance);
                    }
                }else{
                    boolean flag = false ;
                    for(Performance performance2:performanceList){
                        int performanceMonth = performance2.getPerformanceDate().getMonth()+1 ;
                        if(nowMonth==performanceMonth){
                            flag = true ;
                            break ;
                        }
                    }
                    if(flag){
                    }else{
//                        没有数据 为0分,并且通报
                        orgName = infopushDocClass.getOrgName() ;
                        className = infopushDocClass.getClassName() ;
                        performance = new Performance() ;
                        performance.setClassId(classId);
                        performance.setClassName(className);
                        performance.setOrgId(orgId);
                        performance.setOrgName(orgName);
                        performance.setPerformanceDate(performanceDate);
                        performance.setScore(Long.valueOf("0"));
                        this.baseDaoImpl.insert(performance);
                        
                        className = infopushDocClass.getClassName() ;
                        afficheinfo = new Afficheinfo() ;
                        afficheinfo.setClassId(classId);
                        afficheinfo.setOrgId(orgId);
                        afficheinfo.setAfficheinfoDate(performanceDate);
                        strSfficheinfo = "【"+TimeKit1.getNowDate()+"】【"+orgName+"】未推送【"+className+"】分类文献信息" ;
                        afficheinfo.setAfficheInfo(strSfficheinfo);
                        afficheinfo.setClassName(className);
                        afficheinfo.setOrgName(orgName);
                        this.baseDaoImpl.insert(afficheinfo);
                    }
                }
            }
        }
        System.out.println("成功插入!!");
    }

    public BaseDAO getBaseDaoImpl() {
        return baseDaoImpl;
    }

    public void setBaseDaoImpl(BaseDAO baseDaoImpl) {
        this.baseDaoImpl = baseDaoImpl;
    }

}

applicationContext-infopush-timer.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <!-- 定时运行的类 -->
    <bean id="scheduledTimer"
        class="com.strongit.zwjc.infopush.vo.ScheduledTimer">
        <property name="baseDaoImpl">
            <ref bean="baseDAO" />
        </property>
    </bean>
    
    <!--定义定时执行ScheduledTimer类中  的startRun()方法-->
    <bean id="scheduledTask"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="scheduledTimer" />
        </property>
        <property name="targetMethod">
            <value>startRun</value>
        </property>
    </bean>

    <!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。
        这里我们定义了要触发的jobDetail,即触发器去触发哪个bean..并且我们还定义了触发的时间-->
    <bean id="cronTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="scheduledTask" />
        </property>
        <property name="cronExpression">
<!--             关键在配置此表达式 每天中午12点钟整触发事件-->
            <value>0 0 12 * * ?</value>
        </property>
    </bean>

    <!--管理触发器的总设置,可以放置多个触发器。-->
    <bean autowire="no"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTrigger" />
            </list>
        </property>
    </bean>

</beans>
分享到:
评论

相关推荐

    base zz zz zz zz

    base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz

    单片机C语言Proteus仿真实例利用定时器产生乐曲

    单片机C语言Proteus仿真实例利用定时器产生乐曲提取方式是百度网盘分享地址

    单片机C语言Proteus仿真实例用定时器设计的门铃

    单片机C语言Proteus仿真实例用定时器设计的门铃提取方式是百度网盘分享地址

    atguigu_springboot2_zz-master.zip

    `atguigu_springboot2_zz-master`项目涵盖了SpringBoot2的多个关键知识点,从基础的自动配置、内嵌服务器到高级的Spring Data JPA、安全控制和云原生特性,为开发者提供了一个全面了解和实践SpringBoot2的实例。...

    华为企业架构设计方法及实例 zz.pptx

    华为企业架构设计方法及实例 zz.pptx

    小马哥讲 Spring AOP 编程思想 - API 线索图.pdf

    在讨论Spring AOP(面向切面编程)时,首先需要理解几个核心概念。Spring AOP 是Spring框架提供的一个功能模块,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑中解耦出来,通过在方法调用前后进行...

    Spring源码出错,缺失cglib.3.2.6 与 objenesis.2.6

    在Spring框架中,Objenesis用于AOP代理的创建,特别是在CGLIB中,当需要创建一个实例而没有合适的构造函数时,Objenesis可以帮助快速实例化对象。Objenesis通过一些优化的技术,可以避免调用默认构造器,从而提高...

    PHP实例开发源码-zZ笨笨 php留言板程序.zip

    《PHP实例开发:zZ笨笨 PHP留言板程序详解》 PHP作为一款强大的服务器端脚本语言,被广泛应用于Web开发领域。在这个实例中,我们将会深入解析“zZ笨笨 PHP留言板程序”的实现原理和核心功能,以帮助初学者更好地...

    Spring3.0中文版

    Spring框架是Java开发中的核心组件,它以其模块化、松耦合的设计理念,极大地简化了企业级应用的构建。Spring3.0是该框架的一个重要版本,它引入了许多新特性和改进,为开发者提供了更强大的功能和更好的灵活性。在...

    ZZ561401.CAB

    ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB

    wincc AX NF ZZ

    wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。

    zz CAD快速计算长度插件

    在CAD中想要快速测量长度,在CAD工具栏找到加载应用程序,再点击加载 加载成功后在输入栏输入“zz”(不分大小写)在选择你需要测量的线段即可。

    基于Spring MVC+Spring+Mybatis+Mysql 客户关系管理系统 SSM毕业设计

    SSM框架是Java Web开发中常用的一种组合,由Spring MVC、Spring和Mybatis三个组件构成,用于构建高效、灵活的Web应用。这个基于SSM的客户关系管理系统(CRM)毕业设计,利用了Maven进行项目构建,确保了依赖管理的便捷...

    超出NLO QCD的高横向动量的ZZ产生

    我们研究了四轻子最终状态ℓ+ℓ-ℓ+ℓ-的产生,这些状态主要由一对弱电Z玻色子ZZ产生。 使用LoopSim方法,我们合并ZZ和ZZ + jet的NLO QCD结果,并获得ZZ产生的近似NNLO预测。 还包括对ZZ过程的精确胶子融合环平方的...

    Spring Security手册

    Spring Security是Java领域中一款广泛使用的安全框架,它为基于Spring的应用程序提供了全面的安全服务。Spring Security手册和参考文档是开发者深入理解并有效利用该框架的重要资源。下面将详细阐述Spring Security...

    spring-framework-4.0.4.RELEASE-jar包

    《Spring Framework 4.0.4.RELEASE:构建高效Web应用的基石》 Spring Framework作为Java领域中的一个里程碑,以其强大的功能和灵活的设计,成为Web开发领域的首选框架。4.0.4.RELEASE版本是Spring的重要里程碑,它...

    zz809.com留言本

    总的来说,《zz809.com留言本》不仅是一个实际的网络应用,也是学习Web开发,尤其是PHP或相关技术的一个实例教程。对于初学者而言,这是一个宝贵的资源,可以帮助他们在实践中提高技能;对于有经验的开发者,它则...

    5152单片机proteus仿真和源码用定时器T0的中断控制1位LED闪烁

    #### 五、实例代码解析 下面是一个简单的控制LED闪烁的C语言示例代码: ```c #include unsigned char count = 0; void main(void) { TMOD = 0x01; // 定时器T0,工作模式1 TH0 = (65536 - 50000) / 256; TL0...

    Struts、Spring、Hibernate框架整合

    2. **配置Struts**:在Struts的配置文件中,将Action类设置为Spring管理的Bean,这样Struts在调用Action时会从Spring容器中获取实例。 3. **配置Hibernate**:配置Hibernate的SessionFactory,并在Spring配置文件中...

    5152单片机proteus仿真和源码用定时器T0控制输出高低宽度不同的矩形波

    #### Proteus仿真实例 1. **搭建电路模型**: - 使用Proteus提供的5152单片机模型和其他必要的元件(如电阻、电容等)搭建一个基本的测试电路。 - 将单片机的输出引脚连接到示波器或其他显示设备上,以便观察输出...

Global site tag (gtag.js) - Google Analytics