簡體   English   中英

從application.properties讀取值到Spring Batch Reader中?

[英]Read value from application.properties into Spring Batch Reader?

我正在開發Spring Batch Oracle 12c示例,在此讀者中,我想傳遞值60作為占位符,如果將來該值發生變化,我應該能夠從application.properties文件處理它,而不是在sql中使用它。查詢為硬編碼值。

<bean id="myReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
<property name="dataSource" ref="dataSource" />
<property name="verifyCursorPosition" value="false" />
<property name="fetchSize" value="50" />
<property name="sql">
    <value>
            <![CDATA[
            SELECT data.Acc_NUM, data.FD_NUM FROM FD_DATA data, BATch_JOB_RUN B,
            CASE WHEN (data.crte_dt + 60 > sysdate) then 'YES' else 'NO' End DONT_CONSIDER
            WHERE data.ONLINE_ID is NULL and data.updt_dt > B.RUN_DT    
            ]]>
    </value>
</property>
<property name="rowMapper">
    <bean class="com.XXX.XXX.mapper.BankDataVOMapper"
        scope="step" />
</property>
</bean>

我能夠使用下面的代碼做到這一點。

<bean id="myReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
<property name="dataSource" ref="dataSource" />
<property name="verifyCursorPosition" value="false" />
<property name="fetchSize" value="50" />
<property name="sql">
    <value>
            <![CDATA[
            SELECT data.Acc_NUM, data.FD_NUM FROM FD_DATA data, BATch_JOB_RUN B,
            CASE WHEN (data.crte_dt + (#{stepExecutionContext[days60]}) > sysdate) then 'YES' else 'NO' End DONT_CONSIDER
            WHERE data.ONLINE_ID is NULL and data.updt_dt > B.RUN_DT    
            ]]>
    </value>
</property>
<property name="rowMapper">
    <bean class="com.XXX.XXX.mapper.BankDataVOMapper" scope="step" />
</property>
</bean>

我還在步驟執行中使用了以下代碼:

ExecutionContext executionContext = new ExecutionContext();
executionContext.put("days60", 60);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM