最近看了一下入门级别spring,作为笔记记录一下spring定时任务配置文件,以此为基础进行解析一下:(注:开发时需要在pom中配置依赖关系)
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<!--定义为xml的方式来存储bean的配置-->
<?xml version="1.0" encoding="UTF-8"?>
<!--配置bean的开始,根节点Beans中包含一个或者读个bean元素-->
<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-3.0.xsd">
<!--定义一个bean,id是这个bean的唯一标示,class指出这个bean的来源,com.bpp.quartz.QuartzTask是定时任务具体实现类-->
<bean id="xyBatchTask" class="com.bpp.quartz.QuartzTask">
<!--setter--set方法变量依赖注入-->
<property name="assetSide" value="asset_side"/>
<property name="batchTaskName" value="quartz-Batch"/>
<!--集合list元素配置方式,同set-->
<property name="taskList">
<list>
<!--下面5个ref引用的bean是由@service产生的-->
<ref bean="fileDownloadServiceTimeJob"/>
<ref bean="xyFileInsertServiceJob"/>
<ref bean="xyAcctDataCheckServiceClientJob"/>
<ref bean="xyBppFileDataClientJob"/>
<ref bean="xyAcctCheckFilesClientJob"/>
</list>
</property>
<property name="executeMap">
<!--集合map元素配置方式-->
<map>
<entry key="XyBppFileLoadClientJob" value="doExecute"/>
<entry key="FileDownloadServiceTimeJob" value="doExecute"/>
<entry key="XyAcctCheckFilesClientJob" value="doExecute"/>
<entry key="XyBppFileDataClientJob" value="doExecute"/>
</map>
</property>
<property name="updateBatchDateFlag" value="true"/>
<!--ref:参考了id=ccbcDataSource的bean,这个bean的定义-->
<property name="dataSource" ref="ccbcDataSource" />
<!--定义上面的bean结束-->
</bean>
<!--dubbo配置的数据库配置-->
<ddp:datasource id="ccbcDataSource" configDomain="app/xy/datasource/ccbc_xy"/>
<!--定时任务调度业务逻辑配置bean:包括调用的类、类中方法-->
<bean id="xyBatchTaskDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="xyBatchTask"></property>
<property name="targetMethod" value="executeTask"></property>
<property name="concurrent" value="false"></property>
</bean>
<!--增加调度触发器时间频率bean配置:定时任务的触发时间配置-->
<bean id="xyBatchTaskDetailJobQuartz" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="xyBatchTaskDetail" />
<!-- cron表达式 -->
<property name="cronExpression" value="${xyBatchJob_TIME}"></property>
</bean>
<!--总的管理类:容器启动时执行调度程序,lazy-init默认false(懒加载模式),abstract默认false,autowire(自动装配模式)默认不采用-->
<bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--启动任务等待时间120ms-->
<property name="startupDelay" value="120"/>
<property name="triggers">
<list>
<ref bean="xyBatchTaskDetailJobQuartz" />
</list>
</property>
</bean>
</beans>
Bean的4个生命周期:Bean的定义、Bean的初始化、Bean的使用、Bean的销毁;(以下内容基于spring2.0)
1、Bean初始化的两种方式:1)在配置文件中通过指定init-method属性来完成;
2)实现org.springframework.bean.factory.InitializingBean接口;
2、Bean使用的三种方式:1)使用BeanWrapper;
2)使用BeanFactory;
3)使用ApplicationContext;
3、Bean的销毁:1)在配置文件中指定destroy-method属性完成;
2)实现 org.springframework.bean.factory.DisposableBean接口;它会自动执行destroy()方法