Spring 入門學習筆記--spring配置文件xml

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章