• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • spring batch框架入門(一、搭建springboot框架)

      Spring Batch是一個輕量級,全面的批處理框架,旨在開發對企業系統日常運營至關重要的強大批處理應用程序。 
    

    最近公司比較閑,上一個項目做的是一個batch導入導出。之前對batch的概念都還不了解,發現公司用的正是基于spring batch框架的。于是趁著這段閑的時間來學習一下spring batch框架。就先模擬剛做的業務,將書籍信息從txt文件導入數據庫,再從數據庫導出至csv文件。
    一、確定表結構
    關于batch事務的表由springbatch框架來自動生成,這里我們只需要建立一張書籍信息表BOOK。這里簡單點,書籍信息表也由框架自動生成,等下新建個Book實體類就好了。
    本文用的mysql數據庫,新建數據庫,用戶之類就不介紹了。推薦用docker安裝mysql,docker下各種鏡像真是太好用了,傻瓜式一鍵生成,卸載時干干凈凈。
    二、新建batch項目
    idea可以直接調用spring initializr,spring initializr就是初始化一個項目用的,可以選擇需要的依賴來初始化項目。
    File->New->Project->Spring Initializr
    Spring Initializr
    本文并不是做一個web項目,選擇的依賴如下
    在這里插入圖片描述
    Lombok方便編碼,省去寫get set toString之類。
    Validation用來驗證數據。
    JPA,MySQL操作數據庫。
    Batch批處理。
    生成的項目結構如下圖
    spring boot項目結構
    三、創建實體類及數據庫操作接口
    1、創建Book實體類

    package com.example.batchtest;
    
    import lombok.Data;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    
    @Entity(name = "BOOK")
    @Data
    public class Book {
        @Id
        @Column(name = "ID")
        @GeneratedValue(strategy= GenerationType.IDENTITY)
        private Integer id;
    
        @Column(name = "NAME")
        private String name;
    
        @Column(name = "AUTHOR")
        private String author;
    
        @Column(name = "PRICE")
        private Double price;
    
        @Column(name = "PAPERBACK")
        private Integer paperback;
    
        @Column(name = "PUBLISHER")
        private String publisher;
    
        @Column(name = "LANGUAGE")
        private String language;
    
        @Column(name = "ISBN_10")
        private String isbn10;
    
        @Column(name = "DESCRIPTION")
        private String description;
    }
    

    2、數據庫配置(application.properties)

    # mysql配置
    spring.datasource.url=jdbc:mysql://172.18.0.12:3306/batchtest?characterEncoding=utf8&useSSL=true
    spring.datasource.username=abc
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.jpa.properties.hibernate.hbm2ddl.auto=update
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
    spring.jpa.show-sql=true
    

    com.mysql.cj.jdbc.Driver會標紅,這是因為mysql的scope是runtime,不參與項目編譯。若要不標紅,去掉或者改成compile就可以了。但是沒必要。

    3、配置數據庫操作接口

    package com.example.batchtest;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface BookJpa extends JpaRepository<Book, Integer> {
    }
    

    四、測試代碼

    package com.example.batchtest;
    
    import lombok.extern.slf4j.Slf4j;
    import org.junit.Assert;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    @Slf4j
    public class BatchtestApplicationTests {
    
        @Autowired
        private BookJpa bookJpa;
    
        @Test
        public void contextLoads() {
            Book book = new Book();
            book.setAuthor("伊凡·蒲寧");
            book.setDescription("《林蔭幽徑》是諾貝爾文學獎獲得者蒲寧暮年的最后一部自選集,用八年時間寫成,是他一生中寫得最好、最富獨創性的一個集子。《林蔭幽徑》真切地表現了作者對于故國的懷念和對于逝去的青年時代的眷戀。作品構思玲瓏剔透,非常精致,有著磁石般的強烈吸引力;文字精練,抒情性強,擅 長表現人物內心的微妙情感。具有悠遠的意境和發人遐思的哲理,展現了永恒的藝術魅力。");
            book.setIsbn10("9787540786618");
            book.setLanguage("中文");
            book.setName("林蔭幽徑");
            book.setPaperback(200);
            book.setPrice(45.00);
            book.setPublisher("漓江出版社");
            Book savedBook = bookJpa.save(book);
            Assert.assertNotNull(savedBook);
            log.info(savedBook.toString());
        }
    
    }
    
    

    運行成功,數據庫新增了Book表以及關于林蔭幽徑的一條數據,框架就搭建好了,下一篇博客就開始編碼batch相關數據。
    在這里插入圖片描述

    版權聲明:本文為qq_35325367原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_35325367/article/details/89493420

    智能推薦

    Spring框架入門學習(一) - 在IDEA中使用Maven 搭建 spring框架環境

    一、 為什么要學習使用 Spring Spring 框架,作為Spring Boot底層的一部分,擁有著各種強大的特性,其中IOC (控制反轉) 與 AOP (面向切面)更是面試必備的知識點。 在個人的理解里,Spring 框架在平時開發中主要的作用,還是作為一個容器,管理著各個組件之間的各種關系,其中 IOC ,就是管理著各個類之間的關聯關系,就像數據庫設計中,兩張表中間存在多對多關系時,我們通...

    Spring MVC框架入門

    文章目錄 MVC設計模式簡介 Spring MVC處理用戶請求的完整流程 Spring MVC框架搭建 視圖解析器 Spring MVC獲取請求參數方式&注解 Spring MVC的轉發與重定向 請求參數類型轉換 內容出處: Spring MVC 角色劃分清晰,分工明細,并且和 Spring 框架無縫結合。作為當今業界最主流的 Web 開發框架,Spring MVC 已經成為當前最熱門的開...

    Spring框架入門分析

    定位 輕量級的企業級 Java 應用程序開發框架,基礎版本只有 2 MB 左右的大小。核心特性是可以用于開發任何 Java 應用程序,但是在 Java EE 平臺上構建 web 應用程序是需要擴展的。 Spring 框架的目標是使 J2EE 開發變得更容易使用,通過啟用基于 POJO 編程模型來促進良好的編程實踐。 架構分析:Core Containe IOC容器: Spring BeanFact...

    spring框架入門學習

    1.   Spring概述 1.1. Spring是什么 Spring是一個開放源代碼的設計層面框架,他解決的是業務邏輯層和其他各層的松耦合問題, 因此它將面向接口的編程思想貫穿整個系統應用。Spring是于2003 年興起的一個輕量級的Java 開發框架, 由Rod Johnson創建。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    猜你喜歡

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    精品国产乱码久久久久久蜜桃不卡