我希望在生产环境中使用EHCache,但在开发环境中不使用,因为我倾向于在开发环境中调整数据库记录。
我搜索后唯一发现的是这个JVM选项可以完全禁用缓存: -Dnet.sf.ehcache.disabled=true
,但不知为何这似乎并不是理想的解决方案。
最好的方法是在application-dev.yml文件中添加一个选项。我尝试将timeToLiveSeconds设得很低(1),但似乎没有任何效果。
我尝试像这样在我的REST服务中添加一个API,但它似乎也没有任何效果:
/**
* GET /clearCache -> Clear Cache
*/
@RequestMapping(value = "/clearCache",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<String> clearCache() {
CacheManager.getInstance().clearAll();
return new ResponseEntity<String>(HttpStatus.OK);
}
此外,与这个问题相关的另一个问题是,我在CacheConfiguration.java中放置了一个调试断点,但似乎从未被触发。
@PreDestroy
public void destroy() {
非常感谢您寻求帮助!
以下是我的完整启动日志,包括快速启动:
[INFO] mypackage.Application - Starting Application on Lenovo-PC with PID 7408 (D:\projects\app\target\classes started by lenovo in D:\projects\app)
[DEBUG] mypackage.Application - Running with Spring Boot v1.2.4.RELEASE, Spring v4.1.6.RELEASE
[DEBUG] org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider
[DEBUG] mypackage.config.DatabaseConfiguration - Configuring Datasource
[WARN] org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory - HHH020003: Could not find a specific ehcache configuration for cache named [mypackage.Org]; using defaults.
[WARN] org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory - HHH020003: Could not find a specific ehcache configuration for cache named [mypackage.Workflow]; using defaults.
[WARN] org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory - HHH020003: Could not find a specific ehcache configuration for cache named [mypackage.Department]; using defaults.
...
...
...
[DEBUG] mypackage.config.MailConfiguration - Configuring mail server
[INFO] mypackage.Application - Running with Spring profile(s) : [dev, fast]
--spring.profiles.active=dev,fast
,但是我认为只有在设置了环境标志-Dnet.sf.ehcache.disabled=true
后缓存才被禁用。我是否漏掉了什么? - user1880957--spring.profiles.active=dev,fast
命令,但是我没有在CacheConfiguration的日志中看到“Starting Ehcache”的记录。 你确定你将profiles选项传递给了程序args而不是JVM args吗?你尝试使用mvn -Pfast spring-boot:run
命令了吗? - Gaël Marziou-Dnet.sf.ehcache.disabled=true
时,日志的这部分提到它被抑制了。 - user1880957