CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài đăng trên blog CFSDN này giải quyết vấn đề các cuộc gọi phương thức @Cacheable không hoạt động trong cùng một lớp. Bài đăng được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
@Cacheable gọi phương thức trong cùng một lớp là không hợp lệ

Trong hình trên, phương thức genLiveBullets() trong cùng một lớp gọi phương thức queryLiveByRoom() trong cùng một lớp. Ngay cả khi thẻ Cacheable được đánh dấu, bộ nhớ đệm không được sử dụng khi nó được gọi lại.
cacheable không hỗ trợ các lệnh gọi phương thức nội bộ, do đó cần phải sửa đổi để thay đổi bộ đệm yêu cầu thành phương thức dịch vụ. genLiveBullets() trong Aservice gọi queryLiveByRoom() trong Bservice.
Xem hình bên dưới, bộ nhớ đệm được kiểm tra và được sử dụng khi gọi lại.

Tóm tắt về cách sử dụng @Cacheable
@Cacheable(giá trị = "PERSON",khóa = "#tagId+"_"+#zz")Danh sách công khai getPersonByTagid(tagId dài,Chuỗi zz)
- Giá trị này biểu thị bộ đệm mà tham số được phương thức trả về được lưu trữ (tức là tên của khối bộ đệm).
- Kết quả bộ nhớ đệm được lưu trữ trong bộ nhớ đệm dưới dạng cặp khóa-giá trị. Khóa trong chú thích là khóa của cặp khóa-giá trị; giá trị là kết quả trả về của phương thức.
- khóa sử dụng dấu ngoặc kép, # cộng với các tham số phương thức: lấy các tham số phương thức, "" có nghĩa là thêm dấu phân cách giữa các tham số
Sử dụng chung
- Sử dụng @EnableCaching // Bật bộ nhớ đệm trên lớp khởi động springboot
- Sử dụng @Cacheable() trực tiếp trên phương thức để sử dụng bộ nhớ đệm
Trên đây là kinh nghiệm cá nhân của tôi, hy vọng có thể giúp bạn tham khảo và mong bạn có thể ủng hộ tôi.
Liên kết gốc: https://blog.csdn.net/seapeak007/article/details/75031400.
Cuối cùng, bài viết này về giải quyết vấn đề mà các cuộc gọi phương thức @Cacheable không hoạt động trong cùng một lớp đã kết thúc. Nếu bạn muốn biết thêm về cách giải quyết vấn đề mà các cuộc gọi phương thức @Cacheable không hoạt động trong cùng một lớp, vui lòng tìm kiếm các bài viết trên CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!