2012-10-09 115 views
1

對不起,我有點討厭英文。
如何將XML更改爲配置類?

請幫幫我。我有一個問題。
這是我想要將XML更改爲Java類的@Configuration和@Bean使用它。
我該怎麼辦?

以下是我想要更改的內容。
我不知道'module-context.xml'特別是...
只是我想知道的。

推出-context.xml的

<import resource="classpath:/META-INF/spring/module-context.xml" /> 

<bean id="jobOperator" 
    class="org.springframework.batch.core.launch.support.SimpleJobOperator" 
    p:jobLauncher-ref="jobLauncher" p:jobExplorer-ref="jobExplorer" 
    p:jobRepository-ref="jobRepository" p:jobRegistry-ref="jobRegistry" /> 
<bean id="jobExplorer" 
    class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean" 
    p:dataSource-ref="SpringDataSource" /> 
<bean id="jobRegistry" 
    class="org.springframework.batch.core.configuration.support.MapJobRegistry" /> 
<bean 
    class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor"> 
    <property name="jobRegistry" ref="jobRegistry" /> 
</bean> 
<bean id="jobLauncher" 
    class="org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
    <property name="jobRepository" ref="jobRepository" /> 
</bean> 
<bean id="jobRepository" 
    class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean" 
    p:dataSource-ref="SpringDataSource" p:transactionManager-ref="springTransactionManager" /> 

<bean id="placeholderProperties" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:batch.properties" /> 
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> 
    <property name="ignoreUnresolvablePlaceholders" value="true" /> 
    <property name="order" value="1" /> 
</bean> 

<bean id="SpringDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${batch.jdbc.driver}" /> 
    <property name="url" value="${batch.jdbc.url}" /> 
    <property name="username" value="${spring.batch.jdbc.user}" /> 
    <property name="password" value="${spring.batch.jdbc.password}" /> 
</bean> 
<bean id="springTransactionManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager" 
    lazy-init="true"> 
    <property name="dataSource" ref="SpringDataSource" /> 
</bean> 

模塊的context.xml

<job id="job1" xmlns="http://www.springframework.org/schema/batch" 
    incrementer="jobParametersIncrementer"> 
    <step id="simple-step" parent="simpleStep"> 
     <tasklet> 
      <chunk reader="exampleReader" writer="exampleWriter" /> 
     </tasklet> 
    </step> 
</job> 
<bean id="exampleReader" 
    class="jp.co.app.cm.nochunk.ExampleItemReader" /> 
<bean id="exampleWriter" 
    class="jp.co.app.cm.nochunk.ExampleItemWriter" /> 
<bean id="simpleStep" 
    class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" 
    abstract="true"> 
    <property name="transactionManager" ref="springTransactionManager" /> 
    <property name="jobRepository" ref="jobRepository" /> 
    <property name="startLimit" value="100" /> 
</bean> 

plase告訴我一個人?

回答

3

前四種豆翻譯,這應該是足以讓你開始和把握的想法:

@Configuration 
public class Spring { 

    @Bean 
    public MapJobRegistry mapJobRegistry() { 
     return new MapJobRegistry(); 
    } 

    @Bean 
    public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() { 
     JobRegistryBeanPostProcessor pp = new JobRegistryBeanPostProcessor(); 
     pp.setJobRegistry(mapJobRegistry()); 
     return pp; 
    } 

    @Bean 
    public SimpleJobLauncher simpleJobLauncher() { 
     SimpleJobLauncher jl = new SimpleJobLauncher(); 
     jl.setJobRepository(jobRepository().getObject()); 
     return jl; 
    } 

    @Bean 
    public JobRepositoryFactoryBean jobRepositoryFactoryBean() { 
     JobRepositoryFactoryBean fb = new JobRepositoryFactoryBean(); 
     fb.setDataSource(springDataSource()); 
     fb.setTransactionManager(springTransactionManager()); 
     return fb; 
    } 

} 
+0

謝謝您的答覆,托馬斯。我試過了。但我仍然無法解決這個問題。我如何實現標籤?如果你能告訴我,請告訴我那部分示例代碼。 – user1702995

+0

@ user1702995:很好的問題!我不知道Spring Batch以及它是否支持Java配置。 –

+0

嗯...好的,謝謝Tomasz。我考慮另一種方式.. – user1702995

1

我知道這是一個古老的職位,但以防萬一有人將達到通過谷歌這一職務。
Java配置已添加到Spring批量版本2.2中。

直到2.2.0配置作業的唯一選項是通過XML(通過批處理DSL或手動通過 )。但是,在2.2.0中,添加了基於Java的 配置作爲定義Spring批處理作業的一種方式。爲了支持這個新的配置選項, 添加了一個註釋和構建器 類。

http://docs.spring.io/spring-batch/2.2.x/reference/html/whatsNew.html#whatsNewJavaConfiguration http://docs.spring.io/spring-batch/2.2.x/reference/html/configureJob.html#javaConfig

您可以在這裏找到一個例子:
https://github.com/spring-projects/spring-batch/tree/2.2.x/spring-batch-samples/src/main/java/org/springframework/batch/sample/config