Spring從3.1開始定義了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口來統一不一樣的緩存技術;並支持使用JCache(JSR-107)註解簡化開發。web
Cache接口爲緩存的組件規範定義,包含緩存的各類操做集合。spring
Cache接口下Spring提供了各類Cache的實現,如RedisCache、EhCacheCache、ConcurrentMapCache等。緩存
每次調用須要緩存功能的方法時,Spring會檢查指定參數的指定的目標方法是否已經被調用過;若是有就直接從緩存中獲取方法調用後的結果,若是沒有就調用方法並緩存結果後返回給用戶,下次直接從緩存中獲取。安全
註解 | 說明 |
---|---|
Cache | 緩存接口,定義緩存操做。實現有:RedisCache、EhCacheCache、ConcurrentMapCache等。 |
CacheManager | 緩存管理器,管理各類緩存組件 |
@Cacheable | 主要針對方法配置,可以根據方法的請求參數對其結果進行緩存 |
@CacheEvict | 清空緩存 |
@CachePut | 保證方法被調用的時候講結果緩存 |
@EnableCaching | 開啓基於註解的緩存 |
keyGenerator | 緩存數據時key生成策略 |
Serialize | 緩存數據時value序列化策略 |
參數 | 說明 | 例子 |
---|---|---|
value | 緩存的名稱,在Spring配置文件中定義,必須指定至少一個 | @Cacheable(value="mycache")或者@Cacheable(value={"cache1","cache2"}) |
key | 緩存的key,能夠爲空,若是指定要按照SpEL表達式編寫,若是不指定,則缺省按照方法的全部參數進行組合 | @Cache(value="testCache",key="#userName") |
condition | 緩存的條件,能夠爲空,使用SpEL編寫,返回true或者false,只有爲true才進行緩存/清除緩存 | @Cacheable(value="testCache",condition="#userName") |
allEntries(@(CacheEvict)) | 是否清空全部緩存內容,缺省爲false,若是指定爲true,則方法調用後將當即清空全部緩存 | @CacheEvict(value="testCache",allEntries=true) |
beforeInvocation(@CacheEvict) | 是否在方法執行前就清空,缺省爲false,若是指定爲true,則方法在尚未執行的時候就會清空緩存,缺省狀況下,若是方法執行拋出異常,則不會清空緩存 | @CacheEvict(value="testCache",beforeInvocation=true) |
SpringBoot經過整合Spring Data ElasticSearch提供了很是便捷的檢索功能支持。springboot
在Java應用中,絕大多數狀況下都是經過同步的方式來實現交互處理的;可是在處理與第三方系統交互的時候,容易形成響應遲緩的狀況,以前大部分都是使用多線程來完成此類任務,其實,在Spring 3.x以後,就已經內置了@Async來解決這個問題。
@EnableAsync註解開啓異步支持。
@Async標識這是一個異步執行的方法。多線程
Spring提供了異步任務調度的方式,提供了TaskExecutor、TaskScheduler接口。
@EnableScheduling 啓用定時任務支持。
@Schedlued 標識定時任務。
任務的調用時間使用cron表達式進行指定。app
Cron表達式說明框架
字段 | 容許值 | 容許的特殊字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小時 | 0-23 | , - * / |
日期 | 1-31 | , - * ? / L W C |
月份 | 1-12或者JAN-DEC | , - * / |
星期 | 1-7或者SUN-SAT | , - * ? / L C # |
年(可選) | 空,1970-2099 | , - * / |
特殊字符含義說明異步
特殊字符 | 含義 |
---|---|
, | 枚舉 |
- | 區間 |
* | 任意 |
/ | 步長 |
? | 日/星期衝突匹配 |
L | 最後 |
W | 工做日 |
C | 和calender聯繫後計算過的值 |
# | 星期,4#2 表示第二個星期三 |
Spring Security是針對Spring項目的安全框架,也是SpringBoot底層安全模塊默認的技術選型。它能夠實現強大的web安全控制。對於安全控制,只須要引入spring-boot-starter-security模塊,進行少許的配置便可。
@EnableWebSecurity 開啓WebSecurity模式
WebSecurityConfigurerAdapter 自定義Security策略。
AuthenticationManagerBuilder 自定義認證策略。elasticsearch
經過引入spring-boot-starter-actuator,可使用SpringBoot爲咱們提供的標準生產環境下的應用監控和管理功能,能夠經過HTTP、JMX、SSH協議來進行操做,自動獲得審計、健康指標信息等。
監控和管理端點
端點名|描述
:-|:-
actuator|全部Endpoint端點,需加入spring HATEOAS支持
autoconfig|全部自動配置的信息
beans|全部Bean的信息
configprops|全部配置屬性
dump|線程狀態信息
env|當前環境信息
health|應用健康情況
info|當前應用信息
metrics|應用的各項指標
mappings|應用@RequestMapping映射路徑
shutdown|關閉當前應用(默認關閉)
trace|追蹤信息(最新的http請求)