Integrasi kafein dan boot musim semi
Caffeine adalah versi tertulis dari cache juva menggunakan Java 8, yang akan menggantikan jambu biji di Spring Boot 2.0. Jika kafein muncul, Caffeinecachemanager akan dikonfigurasi secara otomatis. Gunakan properti spring.cache.cache-names untuk membuat cache saat startup dan dapat disesuaikan (berurutan) dengan konfigurasi berikut:
Misalnya, konfigurasi berikut menciptakan cache foo dan bar dengan jumlah maksimum 500 dan waktu bertahan hidup 10 menit:
spring.cache.cache-names = foo, barspring.cache.caffeine.spec = MaximumSize = 500, ExpireAfterAccess = 600S
Selain itu, jika com.github.benmanes.caffeine.cache.cacheloader didefinisikan, secara otomatis akan dikaitkan dengan Caffeinecachemanager. Karena Cacheloader akan mengaitkan semua cache yang dikelola oleh Cache Manager, itu harus didefinisikan sebagai Cacheloader <Object, Object>, dan konfigurasi otomatis akan mengabaikan semua jenis generik.
Memperkenalkan dependensi
<dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-cache </arttifactid> </dependency> <dependency> <roupidD> com.github.ben-manes.caffeine </groupid> <Arttifactid> CAFFEINE </ArtIFICT.6 </Groupid> <ArTifacTid> CAFFEINE </ArtIFICT.6.6 versi </groupid> <ArTifacTid> CAFFEIN </ArtIFICT.6
Aktifkan dukungan cache
Gunakan anotasi @enablecaching untuk mengaktifkan dukungan cache
@SpringbootApplication@enableCaching // Aktifkan cache, kelas publik springbootstudentCacheCaffeineApplication {public static void main (string [] args) {springApplication.run (springbootstudentcachecaffeineApplication.class, args); }}File konfigurasi
Menambahkan konfigurasi khusus untuk cache, seperti kapasitas maksimum, waktu kedaluwarsa, dll.
spring.cache.cache-names = peoplespring.cache.caffeine.spec = initialcapacity = 50, maksimumsize = 500, kedaluwarsawrite = 10s, refreshAfterwrite = 5s
Jika konfigurasi RefreshAfterWrite digunakan, Cacheloader juga harus ditentukan, seperti:
/** * This Bean must be specified, and the configuration property of refreshAfterWrite=5s will take effect* * @return */@Beanpublic CacheLoader<Object, Object> cacheLoader() { CacheLoader<Object, Object> cacheLoader = new CacheLoader<Object, Object>() { @Override public Object load(Object key) throws Exception { return null; } // Tulis ulang metode ini dan kembalikan nilai oldValue kembali, dan kemudian menyegarkan CACHE @Override Public Object Reload (tombol objek, objek oldValue) melempar Exception {return oldValue; }}; kembalikan cacheloader;}Instruksi Konfigurasi Kafein:
Melihat:
Kode sampel
/** * @Author yuhao.wang */ @servicepublic class PersonserviceImpl mengimplementasikan Personservice {private static final Logger Logger = LoggerFactory.getLogger (PersonserviceImpl.class); @Autowired PersonRepository PersonRepository; @Override @cacheput (value = "people", key = "#person.id") PUBLIK Simpan (orang orang) {orang p = personRepository.save (orang); logger.info ("adalah id, kunci:" + p.getid () + "cacheed data"); mengembalikan P; } @Override @cacheevict (value = "people") // 2 public void hapus (ID panjang) {logger.info ("Hapus cache data dengan id, tombol" + id + ""); // Operasi penghapusan aktual tidak dilakukan di sini} /** * Cacheable * Nilai: cache awalan kunci. * Kunci: Sufiks kunci cache. * Sinkronisasi: Setel jika cache kedaluwarsa, apakah perlu untuk hanya menempatkan satu permintaan untuk meminta database, dan permintaan lainnya diblokir, dan standarnya false. */ @Override @cacheable (value = "people", key = "#person.id", sync = true) orang publik findOne (orang orang, string a, string [] b, daftar <long> c) {person p = personRepository.findOne (person.getid ()); logger.info ("untuk id, kunci:" + p.getid () + "data di -cache"); mengembalikan P; } @Override @cacheable (value = "people1") // 3 Publik findOne1 () {person p = personRepository.findOne (2l); logger.info ("Untuk id, kunci adalah:" + p.getid () + "data di -cache"); mengembalikan P; } @Override @cacheable (value = "people2") // 3 Publik FindOne2 (orang orang) {person p = personRepository.findOne (person.getId ()); logger.info ("Untuk id, kunci adalah:" + p.getid () + "data di -cache"); mengembalikan P; }} Kode Sumber: https://github.com/wyh-spring-ecosystem-student/spring-boot-student/tree/releases
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.