Spring监听配置的几种方式

方法一:在applicationContext.xml配置文件中配置

<task:scheduled-tasks>  
     <!-- 每天凌晨两点执行  -->  
     <task:scheduled ref="zginfoService" method="autoUpdate" cron="0 0 2 * * ?" /><!--测试 每个一分钟执行  (*/60 * * * * ?)-->
    </task:scheduled-tasks>  

zginfoService:类的名字;

autoUpdate:方法的名字;

/**
* 定时更新 员工信息表, 客户信息表
*/
//@Scheduled(cron = "*/3 * *  * * ?")  
public void autoUpdate(){
//客户表通过身份证号计算年龄
String sqlperson="SELECT T1.RID, T1.SFZH FROM YH_PERSON_INFOR T1";
List<Map<String, Object>> personList=sessionFactory.getCurrentSession().createSQLQuery(sqlperson).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
Integer personAge = 0;
for (int i = 0; i < personList.size(); i++){
String sfzh = personList.get(i).get("SFZH")+"";
String rid = personList.get(i).get("RID")+"";
if (StringUtils.isNotEmpty(sfzh)&&(sfzh.length()==15||sfzh.length()==18)&&StringUtils.isNotBlank(rid)){
personAge=SearchTools.jsusereage(sfzh);
//将计算出的年龄更新到人员表中
String updatesql = "update YH_PERSON_INFOR set nl='"+personAge+"' where rid='"+rid+"'";
sessionFactory.getCurrentSession().createSQLQuery(updatesql).executeUpdate();
}
}

//员工通过身份证号计算年龄
String sqluser="SELECT T1.RID, T1.SFZH FROM ZGINFO T1";
List<Map<String, Object>> userList=sessionFactory.getCurrentSession().createSQLQuery(sqluser).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
Integer userAge = 0;
for (int j = 0; j < userList.size(); j++){
 String sfzhu = personList.get(j).get("SFZH")+"";
 String ridu = personList.get(j).get("RID")+"";
 if(StringUtils.isNotEmpty(sfzhu)&&(sfzhu.length()==15||sfzhu.length()==18)&&StringUtils.isNotBlank(ridu)){
userAge=SearchTools.jsusereage(sfzhu);
//将计算出的年龄更新到人员表中
String updatesql = "update ZGINFO set nl='"+userAge+"' where rid='"+ridu+"'";
sessionFactory.getCurrentSession().createSQLQuery(updatesql).executeUpdate();
 }
}
}


方法二:在applicationContext.xml配置文件中配置

<!-- MessageRequestTask类中包含了msgRequest方法,用于执行定时任务 -->
< bean  id = "msg_request"  class = "com.santorini.task.timer.MessageRequestTask" ></ bean >
 
<!-- 定时器配置 -->
< bean  id = "timeDitail"  class = "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
     < property  name = "targetObject"  ref = "msg_request" ></ property >
     < property  name = "targetMethod"  value = "msgRequest" ></ property >
</ bean >
 
<!-- 定义时间间隔触发器 -->
< bean  id = "timeTigger"  class = "org.springframework.scheduling.quartz.CronTriggerBean" >
     < property  name = "jobDetail"  ref = "timeDitail" ></ property >
     < property  name = "cronExpression" >
         < value >0 */5 * * * ?</ value >
     </ property >
</ bean >
 
<!-- 启动定时器 -->
< bean  id = "startJob"  class = "org.springframework.scheduling.quartz.SchedulerFactoryBean" >
     < property  name = "triggers" >
         < list >
             < ref  bean = "timeTigger"  />
         </ list >
     </ property >
</ bean >

JavaWeb中Spring的初始化放在Web.xml中写:

<!-- web中配置配置文件地址和类加载监听器 -->

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
   
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值