• Quartz框架在Spring容器中使用


    示例如下 :

    applicationContext.xml文件的匹配如下 :

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans
     3     xmlns="http://www.springframework.org/schema/beans"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xmlns:p="http://www.springframework.org/schema/p"
     6     xmlns:aop="http://www.springframework.org/schema/aop"
     7     xmlns:tx="http://www.springframework.org/schema/tx"
     8     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     9                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    10                         http://www.springframework.org/schema/aop
    11                          http://www.springframework.org/schema/aop/spring-aop.xsd
    12                          http://www.springframework.org/schema/tx
    13                          http://www.springframework.org/schema/tx/spring-tx.xsd">
    14 
    15 
    16     <bean id="sessionFactory"
    17         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    18         <property name="configLocation"
    19             value="classpath:hibernate.cfg.xml">
    20         </property>
    21     </bean>
    22     
    23     <!-- 定义环绕增强bean -->
    24     <bean id="aroundAdvice" class="cn.bd.jboa.advice.AroundAdviceLogger"></bean>
    25     
    26     <!-- 定义事务管理器 -->
    27     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    28         <property name="sessionFactory" ref="sessionFactory"></property>
    29     </bean>
    30     
    31     <!-- 定义事务增强 -->
    32     <tx:advice id="txAdvice" transaction-manager="transactionManager">
    33         <tx:attributes> <!-- 定义事务规则 -->
    34             <tx:method name="login*" read-only="true"/>
    35             <tx:method name="find*" read-only="true"/>
    36             <tx:method name="search*" read-only="true"/>
    37             <tx:method name="query*" read-only="true"/>
    38             <tx:method name="save*" propagation="REQUIRED"/>
    39             <tx:method name="add*" propagation="REQUIRED"/>
    40             <tx:method name="merge*" propagation="REQUIRED"/>
    41             <tx:method name="delete*" propagation="REQUIRED"/>
    42             <tx:method name="del*" propagation="REQUIRED"/>
    43             <tx:method name="update*" propagation="REQUIRED"/>
    44             <tx:method name="do*" propagation="REQUIRED"/>
    45             <tx:method name="check*" propagation="REQUIRED"/>
    46             <tx:method name="*" propagation="REQUIRED" read-only="true"/>
    47         </tx:attributes>
    48     </tx:advice>
    49     
    50     <!-- 定义切面 -->
    51     <aop:config>
    52         <!-- 定义切入点 -->
    53         <aop:pointcut expression="execution(* cn.bd.jboa.service.impl.*.*(..))" id="pointcut"/>
    54         <!-- 将事务增强与切入点组合 -->
    55         <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
    56         
    57         <aop:advisor advice-ref="aroundAdvice" pointcut-ref="pointcut"/> <!-- 将环绕增强和切入点组合 -->
    58     </aop:config>
    59     
    60     
    61     <!-- 配置提醒服务类bean,用来指定执行什么操作 -->
    62     <bean id="timingSave" class="cn.bd.jboa.action.TimingSaveAction"></bean>
    63     
    64     <!-- 配置MethodInvokingJobDetailFactoryBean -->
    65     <bean name="jobDetailFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    66         <!-- 配置要调用的类 -->
    67         <property name="targetObject" ref="timingSave"></property>
    68         <!-- 配置要调用的方法 -->
    69         <property name="targetMethod" value="saveBizClaimVoucher"></property>
    70     </bean>
    71     
    72     <!-- 配置触发器 -->
    73     <bean name="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    74         <!-- 配置JobDetail -->
    75         <property name="jobDetail" ref="jobDetailFactory"></property>
    76         <!-- 配置Cron表达式 -->
    77         <property name="cronExpression" value="1 * * 15 * ?"></property>
    78     </bean>
    79     
    80     <!-- 配置调试器 -->
    81     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    82       <property name="triggers">
    83           <list>
    84               <!-- 指定触发器 -->
    85               <ref bean="myTrigger"/>
    86               <!-- 可以在这里添加更多其他的触发器 -->
    87           </list>
    88       </property>
    89      </bean>
    90     
    91 </beans>
     1 package cn.bd.jboa.action;
     2 
     3 import com.opensymphony.xwork2.ActionSupport;
     4 
     5 /**
     6  * 
     7  * @author TaoXianXue
     8  *
     9  */
    10 public class TimingSaveAction extends ActionSupport{
    11     
    12     /**
    13      * 
    14      */
    15     private static final long serialVersionUID = 1L;
    16     
    17     
    18     /**
    19      * 可以在这里编写你要执行什么的操作
    20      */
    21     public void saveBizClaimVoucher(){
    22         
    23     }
    24     
    25 }
  • 相关阅读:
    分布式缓存重建并发冲突和zookeeper分布式锁解决方案
    C# Datatable、DataReader等转化json
    OpenResty部署nginx及nginx+lua
    zookeeper+kafka集群的安装
    缓存数据生产服务的工作流程
    实现缓存与数据库双写一致性保障
    eclipse不提示问题
    Redis 多级缓存架构和数据库与缓存双写不一致问题
    代码这样写更优雅(Python版)
    java string.getBytes(“UTF-8”) javascript equivalent
  • 原文地址:https://www.cnblogs.com/taobd/p/6939364.html
Copyright © 2020-2023  润新知