Caching ด้วย Spring
Caching ด้วย Spring: @Cacheable, @CacheEvict, @CachePut, CacheManager, provider (EhCache, Redis, Caffeine)
1บทบาทหลักของ annotation @Cacheable ใน Spring คืออะไร?
บทบาทหลักของ annotation @Cacheable ใน Spring คืออะไร?
คำตอบ
@Cacheable จะแคชผลลัพธ์ของเมธอดเพื่อหลีกเลี่ยงการรันซ้ำด้วยพารามิเตอร์เดิม ซึ่งช่วยเพิ่มประสิทธิภาพอย่างมากสำหรับการดำเนินการที่มีต้นทุนสูง เช่น การ query ฐานข้อมูลหรือการเรียก API ภายนอก ใช้ @Cacheable กับเมธอดอ่านที่ถูกเรียกบ่อยด้วยอาร์กิวเมนต์เดิมเพื่อลดภาระบนทรัพยากร
2ต้องใช้ annotation ใดเพื่อเปิดใช้งานการรองรับ caching ในแอปพลิเคชัน Spring Boot?
ต้องใช้ annotation ใดเพื่อเปิดใช้งานการรองรับ caching ในแอปพลิเคชัน Spring Boot?
คำตอบ
@EnableCaching เปิดใช้งานการรองรับ caching ใน Spring Boot และต้องวางไว้บนคลาส configuration (โดยทั่วไปคือคลาสหลักที่ติด annotation @SpringBootApplication) หากไม่มี annotation นี้ annotation ของแคชอย่าง @Cacheable จะถูกละเลย Spring Boot จะกำหนดค่า CacheManager แบบ in-memory ที่เรียบง่าย (ConcurrentMapCacheManager) ให้โดยอัตโนมัติหากไม่มีการกำหนดตัวอื่น
3ความแตกต่างหลักระหว่าง @Cacheable และ @CachePut คืออะไร?
ความแตกต่างหลักระหว่าง @Cacheable และ @CachePut คืออะไร?
คำตอบ
@Cacheable จะข้ามการรันเมธอดหากผลลัพธ์อยู่ในแคชแล้ว ในขณะที่ @CachePut จะรันเมธอดเสมอและอัปเดตแคชด้วยผลลัพธ์ใหม่ ใช้ @Cacheable สำหรับการอ่าน (หลีกเลี่ยงการคำนวณซ้ำ) และใช้ @CachePut สำหรับการอัปเดตที่ต้องรีเฟรชแคชโดยไม่ข้ามการรันเมธอด
บทบาทของ annotation @CacheEvict ใน Spring คืออะไร?
Spring Boot กำหนดค่า CacheManager ใดเป็นค่าเริ่มต้นหากไม่มีการกำหนดตัวอื่น?
+22 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Spring Boot อื่นๆ
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
การทำ Logging ด้วย SLF4J และ Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
การจัดการข้อยกเว้น
Bean Validation
พื้นฐาน Spring Data JPA
เอนทิตี JPA และความสัมพันธ์
การสืบค้น JPA
Spring Data Repositories
พื้นฐาน Spring Security
Spring Boot Actuator
การทดสอบหน่วยด้วย JUnit และ Mockito
การทดสอบ Spring Boot
Profiles และ Environment
RestTemplate และ WebClient
Async และ Scheduling
Spring WebFlux (Reactive)
ทรานแซกชัน Spring
การยืนยันตัวตนและการให้สิทธิ์ขั้นสูง
JWT และความปลอดภัยแบบ Stateless
OAuth2 และ Authorization Server
Spring Boot และ Docker
Microservices ด้วย Spring
Spring Cloud Config
การเพิ่มประสิทธิภาพการทำงาน
GraalVM Native Images
เชี่ยวชาญ Spring Boot สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี