Spring Boot 中的二级缓存究竟需要哪些依赖项?
What dependencies do I exactly need for second level caching in Spring Boot?
我读了几篇文章。
一 - 表示需要这些依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.7.1</version>
</dependency>
仅此一个:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.2.2.Final</version>
问题是,为什么在第一个示例中需要 API 进行缓存? hibernate 没有它自己的吗?为什么在第二个例子中不需要 spring-boot-starter-cache?
我指的是这两篇文章。
这两个教程都展示了不同的缓存方法。
- 首先是在 Spring 级别实现缓存。通过这样做,您可以在 Spring 应用程序或调用其他 API 的某些特定方法上实现缓存。这就是为什么你需要
spring-boot-starter-cache
和 cache-api
- spring-boot-starter-cache
因为它与 Spring 一起使用,cache-api
因为你的缓存不会使用休眠 api .
- 其次是在 Hibernate 级别上实现缓存。在这里,您的缓存将在调用 DB 期间使用 - 您不能将其用于缓存某些方法、调用其他 API 等等。这就是为什么您不需要
spring-boot-starter-cache
- 您的代码根本不会使用这些。
如果您只想缓存对数据库的调用,请使用第二种方法。如果您正在尝试缓存可以(但不需要)使用 DB 的方法的执行,那么请使用第一种方法。
我读了几篇文章。 一 - 表示需要这些依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.7.1</version>
</dependency>
仅此一个:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.2.2.Final</version>
问题是,为什么在第一个示例中需要 API 进行缓存? hibernate 没有它自己的吗?为什么在第二个例子中不需要 spring-boot-starter-cache?
我指的是这两篇文章。
这两个教程都展示了不同的缓存方法。
- 首先是在 Spring 级别实现缓存。通过这样做,您可以在 Spring 应用程序或调用其他 API 的某些特定方法上实现缓存。这就是为什么你需要
spring-boot-starter-cache
和cache-api
-spring-boot-starter-cache
因为它与 Spring 一起使用,cache-api
因为你的缓存不会使用休眠 api . - 其次是在 Hibernate 级别上实现缓存。在这里,您的缓存将在调用 DB 期间使用 - 您不能将其用于缓存某些方法、调用其他 API 等等。这就是为什么您不需要
spring-boot-starter-cache
- 您的代码根本不会使用这些。
如果您只想缓存对数据库的调用,请使用第二种方法。如果您正在尝试缓存可以(但不需要)使用 DB 的方法的执行,那么请使用第一种方法。