麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Spring Boot設置并使用緩存的步驟

2024-07-14 08:43:34
字體:
來源:轉載
供稿:網友

幾個緩存注解的作用:

@Cacheable:將方法的返回結果根據key指定的鍵保存在緩存中,以后要獲取相同的數據直接從緩存中共獲取

  • cacheNames/value:指定Cache組件名稱
  • key:指定緩存時使用的key,默認使用方法參數值,可以使用#a0、#p0、#參數名等,支持SpEL表達式,root可省略
  • keyGenerator:指定key的生成器的組件id,如自定義的KeyGenerator
  • cacheManager:指定緩存管理器
  • cacheResolver:指定緩存解析器
  • condition:指定在哪種條件下緩存,如condition = “#id>=1”在參數>=1時緩存
  • unless:指定該條件為真時不緩存
  • sync:指定是否使用異步模式

@CachePut:不管緩存中是否有需要的數據,都會執行該注解標注的方法,并將結果更新到緩存,屬性見上

@CacheEvit:執行方法后,清除key指定的緩存

  • allEntries:默認為false,值為true,刪除所有緩存
  • beforeInvocation:默認為false,值為true,在方法調用之前清除緩存

@CacheConfig:定義一些通用或公共的規則,如cacheNames、keyGenerator等

可使用的SpEL表達式:

Spring,Boot,緩存

使用緩存的步驟:

(1)創建一個Spring Boot應用,勾選Cache、Web、MySQL、Mybatis模塊,在主程序類上添加注解,開啟基于注解的緩存

@MapperScan(basePackages = "com.youngpain.cache.mapper")@SpringBootApplication@EnableCaching

(2)創建JavaBean,和數據庫中的表對應,并配置數據源

spring: datasource:  url: jdbc:mysql://localhost:3306/mybatis_database  username: root  password: 1741248769  driver-class-name: com.mysql.jdbc.Driver redis:  host: 39.108.114.57#開啟駝峰命名法mybatis: configuration:  map-underscore-to-camel-case: truelogging: level:  com.youngpain.cache.mapper: debug

(3)創建mapper接口進行增刪改查操作

/** * 部門表的增刪改查操作 */public interface DepartmentMapper {  @Insert("insert into department(id,depart_name,depart_build) values(#{id},#{depart_name},#{depart_build})")  void insertDepartment(Department department);  @Delete("delete from department where id=#{id}")  void deleteDepartment(Integer id);  @Update("update department set depart_name=#{departName},depart_build=#{departBuild} where id=#{id}")  void updateDepartment(Department department);  @Select("select * from department where id=#{id}")  Department getDepartmentById(Integer id);}

(4)創建service

@Service@CacheConfig(cacheNames = {"departs"})public class DepartmentService {  @Autowired  DepartmentMapper departmentMapper;  @Cacheable(key = "#a0.id")  public void insertDepartment(Department department) {    departmentMapper.insertDepartment(department);  }  @CacheEvict(key = "#p0")  public void deleteDepartment(Integer id) {    departmentMapper.deleteDepartment(id);  }  @CachePut(key = "#a0.id")  public Department updateDepartment(Department department) {    departmentMapper.updateDepartment(department);    return department;  }  @Cacheable(key = "#id", condition = "#p0>=1")  public Department getDepartmentById(Integer id) {    return departmentMapper.getDepartmentById(id);  }}

(5)創建controller

@Controllerpublic class DepartmentController {  @Autowired  DepartmentService departmentService;  @GetMapping("/index")  public String index() {    return "index";  }  @GetMapping("/deleteDepart/{id}")  public String deleteDepart(@PathVariable("id") Integer id, Model model) {    model.addAttribute("condition", "delete");    Department delete = departmentService.getDepartmentById(id);    model.addAttribute("department", delete);    departmentService.deleteDepartment(id);    return "success";  }  @PostMapping("/updateDepart")  public String updateDepart(Department department, Model model) {    model.addAttribute("condition", "update");    Department update = departmentService.updateDepartment(department);    model.addAttribute("department", update);    return "success";  }  @GetMapping("/getDepart/{id}")  public String getDepartmentById(@PathVariable("id") Integer id, Model model) {    model.addAttribute("condition", "delete");    Department get = departmentService.getDepartmentById(id);    model.addAttribute("department", get);    return "success";  }}

(6)測試結果:

@Cacheable:第一次查詢數據,控制臺發出sql語句,之后再查詢直接從緩存中獲取
@CachePut:調用方法修改某個數據后,再次查詢該數據是從緩存中獲取的更新后的數據
@CacheEvict:調用該方法后,再次查詢某個數據需要重新發出sql語句查詢

ps:之前只是用markdown記筆記,今天第一次用markdown寫文章,寫起來好舒服啊QAQ

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久艹艹艹 | 久久久99精品视频 | 在线男人天堂 | 91 免费看片 | 鲁人人人鲁人人鲁精品 | 国产va在线观看免费 | 中文字幕在线永久视频 | 欧美黄 片免费观看 | lutube成人福利在线观看污 | 亚洲国产高清一区 | 激情小说激情电影 | 一区二区三区视频在线 | 毛片网站视频 | 性欧美性欧美 | h视频在线观看免费 | 中国hdxxxx护士爽在线观看 | 国产精品视频不卡 | 久久精品亚洲一区二区三区观看模式 | 国产精品久久久久久久久久10秀 | 国产精品视频一区二区噜噜 | 久久久久久久一区二区 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 黄视频免费在线观看 | 成人区一区二区 | 露脸各种姿势啪啪的清纯美女 | www.com超碰 | 中文区永久区 | 成人免费影院 | 亚洲国产精品高潮呻吟久久 | a黄在线观看 | 97青青| 国产精品久久久久久久娇妻 | 欧美一级免费视频 | 久久青草热 | 免费看性xxx高清视频自由 | 黄色二区三区 | 国产一级小视频 | 中文字幕一区久久 | 黄网在线 | 亚洲第一成网站 | 日韩在线播放第一页 |