Spring Batch 提供了一些非常有用的工具类(例如 JobLauncherTestUtils 和 JobRepositoryTestUtils)和测试执行监听器(StepScopeTestExecutionListener 和 JobScopeTestExecutionListener)来测试批量组件。然而, 为了能够使用这些工具类,你必须明确的对它们进行配置。这个发布介绍了一个新的注解,这个注解被命名为 @SpringBatchTest 能够自动的添加工具 bean(utility beans)和监听器(listeners)来测试上下文并且为自动写入来标记为可用,下面是一个示例代码:
  
  @RunWith(SpringRunner.class)
  
  @SpringBatchTest
  
  @ContextConfiguration(classes = {JobConfiguration.class})
  
  public class JobTest {
  
  @Autowired
  
  private JobLauncherTestUtils jobLauncherTestUtils;
  
  @Autowired
  
  private JobRepositoryTestUtils jobRepositoryTestUtils;
  
  @Before
  
  public void clearMetadata() {
  
  jobRepositoryTestUtils.removeJobExecutions();
  
  }
  
  @Test
  
  public void testJob() throws Exception {
  
  // given
  
  JobParameters jobParameters =
  
  jobLauncherTestUtils.www.haomem178.cn getUniqueJobParameters();
  
  // when
  
  JobExecution jobExecution =
  
  jobLauncherTestUtils.launchJob(www.mcyllpt.com jobParameters);
  
  // then
  
  Assert.assertEquals(ExitStatus.COMPLETED,
  
  jobExecution.getExitStatus());
  
  HTTP缓存类型
  
  200 from cache:直接从本地缓存获取响应,可细分为from disk cache, from memory cache
  
  304 Not Modified:协商缓存,本地未命中发送校验数据到服务端,如果服务端数据没有改变,则读取本地缓存响应
  
  200 OK:不读取缓存,服务器返回完整响应
  
  本地缓存相关Header(Response)
  
  Pragma(1.0):设置为no-cache时会禁用本地缓存
  
  Expires(1.0):值为格林威治时间,在这个时间前缓存有效无需发送请求
  
  Cache-Control:缓存过期时间间隔
  
  no-store:禁止缓存响应
  
  no-cache:先发起请求和服务器协商,通过才能缓存响应
  
  max-age=delta-seconds:告知浏览器该响应本地缓存有效的最长期限,以秒为单位
  
  优先级:Pragma > Cache-control > Expires
  
  协商缓存相关Header(Response)
  
  Last-Modified:最后修改时间, If-Modified-Since(Request),发送到服务器的验证时间
  
  ETag:文件的指纹标识符,随着文件内容改变而改变,If-None-Match(Request),发送到服务器的验证标识符
  
  适合缓存的内容
  
  直接缓存:js,css,图片,媒体文件
  
  协商缓存:HTML,经常改变的js,css,图片,媒体文件
  
  不适合缓存
  
  用户隐私数据
  
  经常改变的api接口数据
  
  拒绝缓存:使用签名,如.js?签名
  
  Nginx
  
  add_header
  
  本地缓存配置
  
  expire:通知浏览器过期时长, expire time;
  
  负值:cache-control:no-cache
  
  正值:cache-control:max-age=指定时间
  
  max:cache-control:max-age=10年后
  
  协商缓存配置
  
  Etag on|off,默认是on
  
  }

Spring Batch @SpringBatchTest 注解的更多相关文章

  1. Spring Batch @EnableBatchIntegration 注解

    设置一个远程分块任务需要定义一系列的 beans: 一个连接工程来从消息中间件中获得连接,消息中间件包括有(JMS,AMQP 和其他) 一个 MessagingTemplate  来从主向从发送消息, ...

  2. spring batch的使用和定时器Quart的使用

    Spring Batch是一个基于Spring的企业级批处理框架,它通过配合定时器Quartz来轻易实现大批量的数据读取或插入,并且全程自动化,无需人员管理. 在使用spring batch之前,得对 ...

  3. Spring Batch 入门级示例教程

    Spring Batch 入门级示例教程 我将向您展示如何使用Spring Boot创建一个的Spring Batch的Hello World示例. (循序渐进) 因此,如果您是Spring Batc ...

  4. Spring Batch在大型企业中的最佳实践

    在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是" ...

  5. Spring Batch实践

    Spring Batch在大型企业中的最佳实践 在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后 ...

  6. spring batch学习笔记

    Spring Batch是什么?       Spring Batch是一个基于Spring的企业级批处理框架,按照我师父的说法,所有基于Spring的框架都是使用了spring的IoC特性,然后加上 ...

  7. spring batch (四) Job的配置及配置文件说明介绍

    内容来自<Spring Batch 批处理框架>,作者:刘相.我只是个搬运工. 一.Spring Batch提供了独立的标签用来顶一个Job配置,分别是job.step.tasklet.c ...

  8. Spring Batch JSR-305 支持

    本发布版本中为 JSR-305 支持添加了一个注解.这个为了与 Spring 框架中的  Null-safety 注解取得平衡,然后为 Spring Batch 添加为 public APIs. 这个 ...

  9. Spring batch的学习

    Spring batch是用来处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定处理后输出成指定的形式. Spring batch主要有以下部分组成: JobRepository     ...

随机推荐

  1. C++ OI图论 学习笔记(初步完结)

    矩阵图 使用矩阵图来存储有向图和无向图的信息,用无穷大表示两点之间不连通,用两点之间的距离来表示连通.无向图的矩阵图是关于主对角线对称的. 如图所示: 使用dfs和bfs对矩阵图进行遍历 多源最短路径 ...

  2. Yii2 模块module笔记

    包含内容: 使用GII新建module 建立子模块 在其他控制器中调用模块的操作(action) 1. 使用Gii工具新建module 注意模块的路径,我们没有写backend\modules\Art ...

  3. angular之$watch() $watchGroup()和$watchCollection()

    $watch $watch主要是用来监听一个对象,在对象发生变化时触发某个事件. 用法: $scope.$watch(watchFn,watchAction, deepWatch) 接下来讲一下这几个 ...

  4. Shell if 判断语句参数

    [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ ...

  5. WCF中数据契约之已知类型的几种公开方式

    WCF中传输的数据不想传统的面向对象编程,它只传递了一些对象的属性,但是自身并不知道自己属于什么对象,所以,他没有子类和父类的概念,因而也就没有Is-a的关系,所以在WCF中,如果想维持这种继承关系, ...

  6. JS基础,相亲,逻辑训练

    简单逻辑 <script> var a = prompt("有房么?"); // if(a == "有") { alert("结婚吧&qu ...

  7. mysql学习----支持Emoji表情

    但发现了一个问题,iPhone上有Emoji表情,插入Mysql时失败了,报如下异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F ...

  8. SQL Server 2008 R2 链接 Oracle 10g

    首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1.“MSDAORA”访问接口是由Microsoft OLE DB Provi ...

  9. Selenium2+python自动化-文件上传

    前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决:另外一种非 ...

  10. PHP版本的讲解

    原文地址:http://dev.meettea.com/show-90-1.html 最近发现很多PHP程序员对PHP版本知识了解不是很清楚,其中不乏PHP产品主力开发人员. PHP版本主要分三支:P ...