最近看了一下入門級別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()方法