国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Batch入門教程篇

Spring Batch入門教程篇

2020-11-12 17:32翟永超 Java教程

這篇文章主要給大家介紹了Spring Batch入門的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。

SpringBatch介紹:

SpringBatch 是一個大數據量的并行處理框架。通常用于數據的離線遷移,和數據處理,?持事務、并發、流程、監控、縱向和橫向擴展,提供統?的接?管理和任務管理;SpringBatch是SpringSource和埃森哲為了統一業界并行處理標準為廣大開發者提供方便開發的一套框架。

官方地址:github.com/spring-projects/spring-batch

  • SpringBatch 本身提供了重試,異常處理,跳過,重啟、任務處理統計,資源管理等特性,這些特性開發者看重他的主要原因;
  • SpringBatch 是一個輕量級的批處理框架;
  • SpringBatch 結構分層,業務與處理策略、結構分離;
  • 任務的運行的實例狀態,執行數據,參數都會落地到數據庫;

快速入門

pom.xml 添加

?
1
2
3
4
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-batch</artifactId>
</dependency>

創建BatchConfig(可以是其他類名)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
@Configuration
@EnableBatchProcessing
public class BatchConfig {
 // tag::readerwriterprocessor[]
 @Bean
 public FlatFileItemReader<Person> flatFileItemReader() {
  FlatFileItemReader<Person> reader = new FlatFileItemReader<>();
  reader.setResource(new ClassPathResource("sample-data.csv"));
  FixedLengthTokenizer fixedLengthTokenizer = new FixedLengthTokenizer();
  reader.setLineMapper(new DefaultLineMapper<Person>() {{
   setLineTokenizer(new DelimitedLineTokenizer() {{
    setNames(new String[]{"firstName", "lastName"});
   }});
   setFieldSetMapper(new BeanWrapperFieldSetMapper<Person>() {{
    setTargetType(Person.class);
   }});
  }});
  return reader;
 }
 @Bean
 public JdbcPagingItemReader<Person> jdbcPagingItemReader(DataSource dataSource) {
  JdbcPagingItemReader<Person> reader = new JdbcPagingItemReader<>();
  reader.setDataSource(dataSource);
  reader.setFetchSize(100);
  reader.setQueryProvider(new MySqlPagingQueryProvider() {{
   setSelectClause("SELECT person_id,first_name,last_name");
   setFromClause("from people");
   setWhereClause("last_name=:lastName");
   setSortKeys(new HashMap<String, Order>() {{
    put("person_id", Order.ASCENDING);
   }});
  }});
  reader.setParameterValues(new HashMap<String, Object>() {{
   put("lastName", "DOE");
  }});
  reader.setRowMapper(new BeanPropertyRowMapper<>(Person.class));
  return reader;
 }
 @Bean
 public JdbcBatchItemWriter<Person> jdbcBatchItemWriter(DataSource dataSource) {
  JdbcBatchItemWriter<Person> writer = new JdbcBatchItemWriter<>();
  writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>());
  writer.setSql("INSERT INTO people (first_name, last_name) VALUES (:firstName, :lastName)");
  writer.setDataSource(dataSource);
  return writer;
 }
 /*@Bean
 public FlatFileItemWriter<Person> flatFileItemWriter(DataSource dataSource) {
  FlatFileItemWriter<Person> writer = new FlatFileItemWriter<>();
  writer.setAppendAllowed(true);
  writer.setEncoding("UTF-8");
//  writer.set(dataSource);
  return writer;
 }*/
 // end::readerwriterprocessor[]
 // tag::jobstep[]
 @Bean
 public Job importUserJob(JobBuilderFactory jobBuilderFactory, JobCompletionNotificationListener listener, Step step) {
  return jobBuilderFactory.get("importUserJob")
    .incrementer(new RunIdIncrementer())
    .listener(listener)
    .start(step)
    .build();
 }
 @Bean
 public Step step1(StepBuilderFactory stepBuilderFactory, PersonItemProcessor processor, ItemWriter jdbcBatchItemWriter, ItemReader flatFileItemReader) {
  /*CompositeItemProcessor compositeItemProcessor = new CompositeItemProcessor();
  compositeItemProcessor.setDelegates(Lists.newArrayList(processor, processor));*/
  return stepBuilderFactory.get("step1")
    .<Person, Person>chunk(10)
    .reader(flatFileItemReader)
    .processor(processor)
    .writer(jdbcBatchItemWriter)
    .build();
 }
 // end::jobstep[]
}

Spring Batch的分層架構

  • Insfrastructure 策略管理:包括任務的失敗重試,異常處理,事務,skip,以及數據的輸入輸出(文本文件,DB,Message)
  • Core: springBatch 的核心,包括JobLauch,job,step等等
  • Application: 業務處理,創建任務,決定任務的執行方式(定時任務,手動觸發等)

Spring Batch入門教程篇

Spring Batch執行流程

Spring Batch入門教程篇

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://blog.didispace.com/spring-batch-1/

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品久久网 | 黄色一级大片在线免费看产 | 久久精品国产久精国产 | 99久久国| 黄色av网站免费看 | 黄在线观看| 欧美 日韩 中文 | 久久久av| www.夜夜爽 | 伊人激情 | 国产精品自拍视频 | 成人免费大片黄在线播放 | 久久精品视频一区 | 国产成人免费高清激情视频 | 国产成人精品综合 | 一级黄色在线 | 日韩精品一区二区三区中文在线 | а天堂中文最新一区二区三区 | 欧洲精品二区 | 99re热精品视频 | 亚洲高清在线视频 | 国产在线观看一区二区三区 | 中文字幕在线观看精品视频 | 久久久久久久久久国产 | 欧美劲爆第一页 | 久久精品无码一区二区三区 | 亚洲狠狠爱一区二区三区 | 国产日韩欧美视频 | 国产精品久久久久久吹潮 | 台湾一级特黄aa大片免费看 | 欧美精品一区二区三区在线 | 亚洲综合大片69999 | 国产一级特黄 | 国产一区二区三区在线看 | 91免费版在线观看 | 精品视频第一页 | 免费自拍偷拍视频 | 91久久 | 久久高清精品 | 黄色一级视频 | 亚洲综合在线视频 |