zoukankan      html  css  js  c++  java
  • springbatch---->springbatch的使用(一)

      这里我们通过一个简单的实例来对springbatch做一个入门的体会。刚刚好,看见你幸福的样子,于是幸福着你的幸福。

    springbatch的入门案例

    简单项目的结构如下:

    一、引入maven的springbatch的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-core</artifactId>
            <version>LATEST</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring-version}</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring-version}</version>
        </dependency>
    </dependencies>

    二、application.xml的内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <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.xsd">
    
        <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.MapJobRepositoryFactoryBean">
        </bean>
    
        <bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager"/>
    </beans>

    三、batch.xml的文件内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <bean:beans xmlns="http://www.springframework.org/schema/batch"
                xmlns:bean="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
    http://www.springframework.org/schema/batch
    http://www.springframework.org/schema/batch/spring-batch-3.0.xsd">
    
        <bean:import resource="application.xml"/>
    
        <job id="helloWorldJob">
            <step id="step_hello" next="step_world">
                <tasklet ref="hello" transaction-manager="transactionManager"></tasklet>
            </step>
            <step id="step_world">
                <tasklet ref="world" transaction-manager="transactionManager"></tasklet>
            </step>
        </job>
    
        <bean:bean id="hello" class="com.linux.huhx.batch.WriteTasklet">
            <bean:property name="message" value="Hello "></bean:property>
        </bean:bean>
    
        <bean:bean id="world" class="com.linux.huhx.batch.WriteTasklet">
            <bean:property name="message" value=" World!"></bean:property>
        </bean:bean>
    </bean:beans>

    四、WriteTasklet.java的内容如下

    package com.linux.huhx.batch;
    
    import org.springframework.batch.core.StepContribution;
    import org.springframework.batch.core.scope.context.ChunkContext;
    import org.springframework.batch.core.step.tasklet.Tasklet;
    import org.springframework.batch.repeat.RepeatStatus;
    
    /**
     * @Author: huhx
     * @Date: 2017-09-14 上午 9:56
     * @Desc:
     */
    public class WriteTasklet implements Tasklet {
        private String message;
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        @Override
        public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
            System.out.print(message);
            return RepeatStatus.FINISHED;
        }
    }

    五、JobLaunch.java的内容如下

    package com.linux.huhx.batch;
    
    import org.springframework.batch.core.Job;
    import org.springframework.batch.core.JobExecution;
    import org.springframework.batch.core.JobParameters;
    import org.springframework.batch.core.launch.JobLauncher;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * @Author: huhx
     * @Date: 2017-09-14 上午 9:58
     * @Desc:
     */
    public class JobLaunch {
        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("config/batch/batch.xml");
            JobLauncher launcher = (JobLauncher) context.getBean("jobLauncher");
    
            Job job = (Job) context.getBean("helloWorldJob");
            try {
                // 运行Job
                JobExecution result = launcher.run(job, new JobParameters());
                // 处理结束,控制台打印处理结果
                System.out.println(result.toString());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    运行的结果是先打印Hello 后打印 World!

    友情链接

  • 相关阅读:
    tailf、tail -f、tail -F三者区别(转)
    Jackson是线程安全的吗
    SecureCRT同时向多个终端发送命令
    SecureCRT设置和Xshell一样的快速命令集(使用快捷键输入命令和密码)
    SecureCRT配色方案
    Java中判断字符串是否为数字的方法
    MySQL错误:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL easonjim
    SecureCRT导出服务器列表或配置文件
    java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.<init>()
    Badge
  • 原文地址:https://www.cnblogs.com/huhx/p/baseusespringbatch1.html
Copyright © 2011-2022 走看看