Tôi đã xem mọi nơi trực tuyến để có câu trả lời đơn giản cho câu hỏi trên và không thể tìm thấy câu trả lời đó. Tôi có một phương pháp như:Spring's @Cacheable làm gì khi được đặt trên một phương thức trả về một danh sách?
@Cacheable(cacheNames = "objects")
public List<Object> get() { .. }
Tôi đang sử dụng ehcache 2.10.0 với Spring Framework 4.2.1, và tôi có thể nhìn thấy đầu ra sau đây cho phương pháp này:
Adding cacheable method 'get' with attribute: [CacheableOperation[public java.util.List com.example.DAO.get()] caches=[objects] | key='' ...
cũng (ở sau khai thác gỗ)
Computed cache key 'SimpleKey []' for operation ...
chú thích @Cacheable phải để làm trong tình huống này là gì? Đặt mỗi đối tượng trong bộ nhớ đệm được khóa bởi hashCode (như được gợi ý ở nơi khác)? Hoặc chỉ cần plonk toàn bộ danh sách như là-vào bộ nhớ cache theo một số hashCode dựa trên danh sách?
Vì vậy, nó sẽ trả về toàn bộ danh sách trên lần gọi thứ hai của phương thức get()? – ben3000
Có thể. Vì nó đã có một bản ghi rằng phương thức đã được thi hành nên đối tượng được lưu trữ. Xin lưu ý rằng phương pháp của bạn phải được công khai để làm việc. –
Các đối tượng riêng lẻ trong danh sách có được lưu trong các khóa riêng biệt không? – ben3000