当前位置: 首页 > news >正文

注册网站平台汽车网站开发与实现 论文

注册网站平台,汽车网站开发与实现 论文,廊坊森德科技有限公司,会展网站建设情况什么是Spring-batch Sping Batch 是一个轻量级的、完善的的批处理框架#xff0c;旨在帮助企业建立健壮、高效的批处理应用。 Spring Batch 是Spring的一个子项目#xff0c;基于Spring框架为基础的开发的框架 Spring Batch 提供大量可重用的组件#xff0c;比如#xff…什么是Spring-batch Sping Batch 是一个轻量级的、完善的的批处理框架旨在帮助企业建立健壮、高效的批处理应用。 Spring Batch 是Spring的一个子项目基于Spring框架为基础的开发的框架 Spring Batch 提供大量可重用的组件比如日志追踪事务任务作业统计任务重启跳过重复资源管理等 Spring Batch 是一个批处理应用框架不提供调度框架如果需要定时处理需要额外引入-调度框架比如 Quartz 什么是批处理 就是将数据分批次进行处理的过程。比如银行对账逻辑跨系统数据同步等。 常规的批处理操作步骤系统A从数据库中导出数据到文件系统B读取文件数据并写入到数据库 典型批处理特点 自动执行根据系统设定的工作步骤自动完成 数据量大少则百万多则上千万甚至上亿。(如果是10亿100亿那只能上大数据了) 定时执行比如每天每周每月执行。 批处理逻辑介绍 spring-batch的运行结构大概分为上图几个部分,我们重点先关注Job,Step,ItemReader,ItemProcessor,ItemWriter几个部分,为了方便理解我举一个例子: 假如.Job是我们上学时老师布置的的作业,那么Step就好比现在有好几个学科的作业,我们总得有个先后顺序,我先写哪个后写哪个,所以一个Job里面可以有多个Step,     然后比如我写到英语这一门,我不会做,怎们办呢,我想抄一抄同学的作业,这一步就是ItemReader的工作,此时我还害怕被老师发现我的作业是抄的同学的,于是我把同学的答案又加工了一下这就是ItemProcessor的作用,ItemWriter相信就大家已经猜到了,这是真正写到了自己的作业本上的答案,所以Step里面又可以分为这么几个步骤 JobLauncher作业调度器作业启动主要入口。 Job作业需要执行的任务逻辑 Step作业步骤一个Job作业由1个或者多个Step组成完成所有Step操作一个完整Job才算执行结束。 ItemReaderStep步骤执行过程中数据输入。可以从数据源(文件系统数据库队列等)中读取Item(数据记录)。 ItemWriterStep步骤执行过程中数据输出将Item(数据记录)写入数据源(文件系统数据库队列等)。 ItemProcessorItem数据加工逻辑(输入)比如数据清洗数据转换数据过滤数据校验等 JobRepository 保存Job或者检索Job的信息。SpringBatch需要持久化Job(可以选择数据库/内存)JobRepository就是持久化的接口 小试牛刀 介绍完上面的各个逻辑,我们来写一个简单的入门案例 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.3/versionrelativePath/ /parent dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-batch/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--内存版--dependencygroupIdcom.h2database/groupIdartifactIdh2/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency/dependencies SpringBootApplication EnableBatchProcessing public class HelloJod {Autowiredprivate JobBuilderFactory jobBuilderFactory;Autowiredprivate StepBuilderFactory stepBuilderFactory;public static void main(String[] args) {SpringApplication.run(HelloJod.class, args);}/*** 任务*/Beanpublic Job job() {return jobBuilderFactory.get(hello-job).start(step1()).next(step2()).build();}/*** 步骤一*/Beanpublic Step step1() {return stepBuilderFactory.get(step1).tasklet(new Tasklet() {Overridepublic RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {System.out.println(这是第一步!);return RepeatStatus.FINISHED;}}).build();}/*** 步骤二*/Beanpublic Step step2() {return stepBuilderFactory.get(step2).tasklet(new Tasklet() {Overridepublic RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {System.out.println(这是第二步!);return RepeatStatus.FINISHED;}}).build();}} 这是spring-batch最简单的一个步骤处理模型,其中使用了h2内存数据库,后续要换成MySQL或其他数据库,只需要引入相应依赖,然后更改yml即可,以MySQL为例: !-- dependencygroupIdcom.h2database/groupIdartifactIdh2/artifactIdscoperuntime/scope /dependency --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.12/version /dependency spring:datasource:username: rootpassword: 123456url: jdbc:mysql://127.0.0.1:3306/springbatch?serverTimezoneGMT%2B8useSSLfalseallowPublicKeyRetrievaltruedriver-class-name: com.mysql.cj.jdbc.Driver 注意,在启动之前我们需要创建一下数据库的表结构,它存在于org/springframework/batch/core/schema-mysql.sql这个路径下,这里还有其他数据库的初始化语句, 作业监听器 作业监听器用于监听作业的执行过程逻辑。在作业执行前执行后2个时间点嵌入业务逻辑。 执行前一般用于初始化操作 作业执行前需要着手准备工作比如各种连接建立线程池初始化等。 执行后业务执行完后需要做各种清理动作比如释放资源等。 public interface JobExecutionListener {//作业执行前void beforeJob(JobExecution jobExecution);//作业执行后void afterJob(JobExecution jobExecution); } 居于块Tasklet 居于块的Tasklet相对简单Tasklet来说多了3个模块ItemReader( 读模块) ItemProcessor(处理模块)ItemWriter(写模块) 跟它们名字一样 一个负责数据读 一个负责数据加工一个负责数据写。 步骤监听器 步骤也有监听器也是执行步骤执行前监听步骤执行后监听。 步骤监听器有2个分别是StepExecutionListener ChunkListener 意义很明显就是step前后chunk块执行前后监听。 public interface StepExecutionListener extends StepListener {void beforeStep(StepExecution stepExecution);NullableExitStatus afterStep(StepExecution stepExecution); } 带有监听器的案例 SpringBootApplication EnableBatchProcessing public class JobStepListener {Autowiredprivate JobBuilderFactory jobBuilderFactory;Autowiredprivate StepBuilderFactory stepBuilderFactory;public static void main(String[] args) {SpringApplication.run(JobStepListener.class, args);}/*** 任务*/Beanpublic Job job() {return jobBuilderFactory.get(job_state_job).start(step1()).incrementer(jobParametersIncrementer())//作业监听器.listener(jobExecutionListener())//步骤监听器.listener(JobListenerFactoryBean.getListener(new AnnoJobExecutionListener())).build();}/*** 步骤一*/Beanpublic Step step1() {return stepBuilderFactory.get(step1).tasklet(tasklet1()).listener(stepExecutionListener()).build();}/*** 步骤的内容*/Beanpublic Tasklet tasklet1() {return new Tasklet() {Overridepublic RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {BatchStatus status chunkContext.getStepContext().getStepExecution().getStatus();System.out.println(运行中! status);return RepeatStatus.FINISHED;}};}Beanpublic JobParametersIncrementer jobParametersIncrementer() {return new DateTimeParameter();}Beanpublic JobExecutionListener jobExecutionListener() {return new IJobExecutionListener();}Beanpublic StepExecutionListener stepExecutionListener() {return new IStepListener();}}public class IJobExecutionListener implements JobExecutionListener {Overridepublic void beforeJob(JobExecution jobExecution) {BatchStatus status jobExecution.getStatus();System.out.println(作业运行前的状态 status);}Overridepublic void afterJob(JobExecution jobExecution) {BatchStatus status jobExecution.getStatus();System.out.println(作业运行后的状态 status);} } public class IStepListener implements StepExecutionListener {Overridepublic void beforeStep(StepExecution stepExecution) {System.out.println(执行了步骤前监听);}Overridepublic ExitStatus afterStep(StepExecution stepExecution) {System.out.println(执行了步骤后监听);return stepExecution.getExitStatus();} }这里仅仅是介绍了spring-batch的冰山一角,其中好多细节都没涉及到,只是大体熟悉一个流程,下一篇文章将用一个综合的Demo更深入了解spring-boot的使用
http://www.dnsts.com.cn/news/200565.html

相关文章:

  • 怎么推广自己的网站百度平台营销软件
  • 韩国优秀网站北京微信网站开发
  • 建筑规范网站文化设计有限公司
  • 做网站注册几类商标做网站设计的都转行干啥了
  • 网站建设的想法和意见怎样策划一个营销型网站
  • 自己做的网站上出现乱码怎么修改世界青田网app
  • 网站一跳率大庆市工程建设信息去哪个网站
  • 山东川畅科技做网站多少钱做订单管理网站用什么软件
  • 网站访客qq获取系统 报价互联网服务平台是什么
  • wap网站 开发介绍旅游美食的网站模板免费下载
  • 安徽中色十二冶金建设有限公司网站建立模板
  • 营销型公司网站有哪些组合wordpress源码
  • 山西网络公司网站建设义乌建设网站
  • 温州网站定制哪家好wordpress文件执行顺序
  • 深圳营销型网站建设+宝安西乡asp建站系统源码
  • 建网站前期设计用那软件软件项目管理流程图
  • 财经投资公司网站建设方案友情链接交易平台源码
  • 临沂网站建设多少钱宁波关键词排名优化平台
  • 电商网站开发的目的是龙岗网站建设企业
  • 北京市地铁建设管理公司网站龙岗网站维护
  • icp备案网站作文网小学
  • 网站的欢迎页怎么做外贸建站网站公司
  • 怎么建立自己的网站免费Net网站开发招聘
  • 网站建设公司排行榜快速网页制作工具
  • 深圳专业做网站多少钱网站建设基本流程包括哪几个
  • 做企业形象网站导航站 wordpress
  • 仿站WordPress湖南广厦建设工程有限公司网站
  • 培训学校网站系统服务器可以自己的网站吗
  • 贵州网站建设lonwone正规的培训行业网站制作
  • vue 大型网站开发jsp简单的网站开发例子