我运行一个Spring启动1.5.2应用程序。我想将缓存添加到我的服务方法中,我已经添加了Spring引导启动缓存maven依赖,我正在使用@Cacheable注释,但它没有生效,我在@配置类中创建了我的服务bean-这里有一个例子
@Bean(name = "policyService")
public IPolicyService policyService() {
policyService = new PolicyServiceImpl();
return policyService;
}
下面是我的服务方法的一个例子
@Cacheable(value="policiesCache")
public List<PolicyDBO> findAllPolicies() {
LOG.info("Entered findAllPolicies");
List<PolicyDBO> policyList = policyRespoitory.findAll();
LOG.info("Exiting findAllPolicies");
return policyList;
}
我的repoistory接口方法如下
@Repository
public interface PolicyRepository extends CrudRepository<PolicyDBO, Long>{
/** Find policy by id **/
PolicyDBO findById(Long policyId);
}
每当我从RestController调用此服务方法时,缓存从未被触发,看起来它没有正确设置
我能做些什么来正确设置缓存?
谢谢Damien
假设缓存处于活动状态,Spring缓存工作正常,但并不像您预期的那样@Cacheable
根据结果缓存参数。
在您的情况下,缓存存储的没有参数
针对List的结果
但是,当您调用
findById
时,缓存找不到任何反对Long
参数的内容,因此不会返回缓存的结果。
我在后台使用PostgreSQL数据库,在Spring Boot中使用Spring数据。 我有一个@Controller; 调用具有@Transactional(readOnly=false)的服务层方法。该方法从头构建实体对象,并使用entityRepository中内置的Spring数据将其保存到数据库中。saveAndFlush(实体) 然后通过RestTemplate调用共享同一数据库的远
我正在使用Spring方法级别的注释@cacheable来缓存我从数据库中获取的数据。我可以在服务器启动时使用上述注释执行缓存吗?我尝试了这个,但它再次从数据库而不是从缓存中获取。
我正在尝试让spring boot让浏览器缓存静态资源。我的资源位于“静态”下的类路径中。当我查看发回的标题时,我看到修改标题设置得很好,但不知何故,标题“缓存控制:无存储”也被添加了。 我已经看到了如何在Spring Boot中启用HTTP响应缓存的答案,但这似乎不适用于我,因为我没有使用Spring Security性,它不在类路径上。 我正在使用带有胸片的Spring启动1.4.0。 那么,
我有一个Spring Boot应用程序,其中有一个Kafka消费者和生产者。还有一个bean来创建主题。 我的Spring Boot应用程序和Kafka都是在Kubernetes的Docker启动的。有时Spring Boot应用程序在Kafka pod启动之前就启动了,因此无法启动,因为用户无法连接(参见stacktrace)。 有没有一种方法可以让我的应用程序以弹性的方式启动?例如,消费者应该
我在启动spring boot应用程序时遇到以下错误。这是我的第一个spring boot项目。因此,我不确定错误以及如何修复它。 申请启动失败 描述: 配置为侦听端口8080的Tomcat连接器无法启动。端口可能已在使用中,或者连接器可能配置错误。 行动: 验证连接器的配置,识别并停止在端口8080上侦听的任何进程,或者将此应用程序配置为在另一个端口上侦听。
我想将主数据缓存到Redis。 所以,我写了这些代码。 和 和ymlfile 但是,缓存不工作... 无论何时调用printTest方法,都将执行“getTest”方法。Redis没有数据。。。我的代码中有什么问题? SpringBoot版本是1.4.0 依赖关系是