SpringBoot緩存之redis--最簡單的使用方式
阿新 • • 發佈:2019-02-25
all 一個 mysq urn png drive span 配置 pan
第一步:配置redis
這裏使用的是yml類型的配置文件
1 mybatis: 2 mapper-locations: classpath:mapping/*.xml 3 spring: 4 datasource: 5 name: miaosha 6 url: jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC 7 username: root 8 password: 1234 9 type: com.alibaba.druid.pool.DruidDataSource #數據源10 driverClassName: com.mysql.jdbc.Driver 11 redis: 12 host: 10.0.75.1 #地址 13 port: 6379 #端口號 14 timeout: 20000 #連接超時時間 15 cache: #緩存類型 16 type: redis
第二步:在啟動類上添加 @EnableCaching 註解
1 @SpringBootApplication(scanBasePackages = {"com.miaoshaproject"}) 2 @MapperScan("com.miaoshaproject.dao")3 @EnableCaching 4 public class App { 5 6 public static void main( String[] args ) { 7 ConfigurableApplicationContext run = SpringApplication.run(App.class, args); 8 } 9 }
第三步:在需要緩存的方法上添加 @Cacheable 註解
@Service @CacheConfig(cacheNames = {"itemService"}) public classItemServiceImpl implements ItemService { @Override @Cacheable(value = {"item"},key ="#p0") public String getItemById(Integer id) { String name = "123"; return name; } }
註:關於springboot緩存名的說明:
使用SpringBoot緩存必須配置名字可以使用@CacheConfig(cacheNames = {"itemService"})在類上配置該類公用的名字,也可以使用@Cacheable(value=”item”)在方法上配置只適用於該方法的名字。如果類和方法上都有配置,以方法上的為準。
springBoot會自動拼裝緩存名,規則是:配置的名字+兩個冒號+方法的實參;
註:關於@CacheConfig和@Cacheable註解的說明:
@Cacheable(value=”item”),這個註釋的意思是,當調用這個方法的時候,會從一個名叫 item 的緩存中查詢,如果沒有,則執行實際的方法(即查詢數據庫),並將執行的結果存入緩存中,否則返回緩存中的對象。
在上面代碼示例中@Cacheable註解設置了兩個參數一個是value,一個是key。key的值"#p0"在執行過程中會被getItemById方法的實參所替換,例如id的值3 那麽緩存的名字就會是"item::3";如果不設置key,系統會自動也會是這個效果。
如果是無參方法:
@CacheConfig is a class-level annotation that allows to share the cache names,如果你在你的方法寫別的名字,那麽依然以方法的名字為準。
SpringBoot緩存之redis--最簡單的使用方式