Konsep Cache Musim Semi
Dimulai dengan Spring 3.1, cara transparan untuk menambahkan cache ke aplikasi pegas yang ada disediakan, yang digunakan seperti @transaction. Ada lapisan abstraksi antara tingkat aplikasi dan penyimpanan backend. Lapisan abstraksi ini dirancang untuk merangkum berbagai penyimpanan backend pluggable (Ehcache Guava redis) untuk meminimalkan intrusi yang disebabkan oleh cache pada kode bisnis yang ada.
Teknologi caching Spring juga memiliki fleksibilitas yang cukup besar. Tidak hanya dapat menggunakan SPEL (bahasa Spring Expression) untuk mendefinisikan kunci cache dan berbagai kondisi, tetapi juga menyediakan solusi penyimpanan sementara cache di luar kotak, dan juga mendukung integrasi dengan cache profesional utama seperti ehcache.
Karakteristiknya dirangkum sebagai berikut:
Konsep desain
Sama seperti layanan lain dari kerangka kerja pegas, Cache Spring First menyediakan lapisan abstraksi, dan abstraksi inti terutama tercermin dalam dua antarmuka.
org.springframework.cache.cache
org.springframework.cache.CacheManager
Cache singkatan dari cache itu sendiri
Cachemanager mewakili pemrosesan dan manajemen cache, dll. Arti abstraksi adalah untuk memblokir perbedaan dalam detail implementasi dan memberikan skalabilitas. Lapisan abstraksi cache ini memisahkan penggunaan cache dan penyimpanan back-end cache, sehingga penyimpanan back-end dapat diganti dengan mudah di masa depan.
Menggunakan cache pegas dalam tiga langkah:
Menyatakan cache
@Cacheable ("Buku") Buku Publik Findbook (ISBN ISBN) {...} Penggunaannya sangat sederhana. Tambahkan @cacheable dan anotasi lainnya ke metode untuk menyimpan hasil metode ini.
Ketika metode dipanggil, periksa terlebih dahulu apakah ada panggilan ke parameter yang sama di cache untuk metode ini. Jika demikian, permintaan dari cache dan kembalikan hasilnya. Jika tidak, jalankan logika metode spesifik dan cache hasilnya untuk cache. Tentu saja, rangkaian logika ini transparan untuk penelepon. Catatan untuk operasi cache lainnya adalah sebagai berikut (lihat dokumentasi resmi untuk detailnya):
Nyalakan Dukungan Cache Musim Semi
<cache: anotasi-digerakkan />
Atau gunakan metode anotasi @enablecaching
Konfigurasikan penyimpanan backend cache
Cache Spring menyediakan beberapa implementasi penyimpanan backend bawaan: Berikut ini adalah implementasi spesifik dari Cachemanager.
Selain itu, data pegas menyediakan dua manajer cache:
Jika Anda menggunakan cache terdistribusi seperti memcached atau redis, Anda dapat menerapkan cache dan cacheemanager sendiri dan menyatakannya dalam konteks. Jika beberapa implementasi cache yang berbeda diperlukan, berbagai cacheemanagers dapat dienkapsulasi bersama dalam mode kombinasi.
Bagaimana kunci cache dihasilkan
Kita semua tahu bahwa metode penyimpanan cache umumnya adalah nilai kunci. Jadi di Cache Musim Semi, bagaimana set kunci? Di sini kita perlu memperkenalkan KeyGenerator, yang bertanggung jawab atas strategi pembuatan utama, dan standarnya adalah menggunakan SimpleKeyGenerator
Dapat dilihat bahwa itu adalah nilai hash dari array parameter yang dipesan. Tentu saja, pengguna dapat menyesuaikan strategi pembuatan utama.
Implementasi Cache Musim Semi
Di atas adalah penggunaan umum cache musim semi, yang menunjukkan bagaimana musim semi diimplementasikan.
Saat mempelajari kode sumber musim semi, ada dua hal yang perlu diingat:
Ingat ini dan lebih mudah untuk memahami implementasi dan mekanisme runtime dari beberapa komponen di musim semi.
Cache musim semi tidak terkecuali. Ini adalah implementasi AOP pegas yang khas. Di musim semi, AOP dapat dengan mudah dipahami sebagai proxy (kecuali aspekj). Kami menyatakan bahwa kelas metode @cacheable akan diproksi, dan dalam proxy, query yang di -cache dan operasi pengaturan diimplementasikan.
Pembuatan Infrastruktur Cache
Artikel sebelumnya (Tinjauan Modul AOP Musim Semi) berbicara tentang fakta bahwa proses penciptaan AOP Spring pada dasarnya untuk mengimplementasikan pemrosesan beanpost, membuat proksi dalam proses menciptakan kacang, dan mengikat semua penasihat yang berlaku untuk kacang untuk proxy, dan akhirnya mengeksposnya ke wafen.
Beberapa konsep kunci AOP Master di Spring Advisor Advisor PointCut
Saran = perilaku penyisipan di bagian intersepsi
pointcut = pointcut ke bagian
penasihat = saran + pointcut
Cache musim semi juga memiliki proses yang sama seperti AOP lainnya
Buat proxy cache
Garis intersep Cache
Objek proxy cache yang dihasilkan dalam cache musim semi menggunakan kelas pabrik CacheproxyFactoryBean. Secara umum, penciptaan proxy standar di musim semi didasarkan pada proxyfactorybean. Di sini, untuk menangani logika cache yang lebih nyaman, Spring memperkenalkan CacheproxyFactoryBean untuk secara khusus mewakili proxy terkait cache. Proxy cache dapat membungkus objek target singleton dan proxy semua antarmuka yang diimplementasikan oleh objek target.
Seperti yang Anda lihat, di CacheproxyFactoryBean, properti penting adalah Cacheinterceptor. Kelas ini adalah kelas implementasi MethodInterceptor. Tanggung jawab kelas ini adalah melakukan operasi cache spesifik pada metode target objek target, yang merupakan tanggung jawab saran yang disebutkan di atas.
Lanjutkan untuk mengikuti, metode pengembalian yang dijalankan adalah metode dalam penopang kelas induk
Dalam metode ini, kami akhirnya menemukan logika akhir dari Operation Cache
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.