Spring Batch @SpringBatchTest 註解
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 註解