有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在使用spring数据存储库时更新spring缓存

我正在尝试使用activemq(jms)在spring管理的分布式应用程序中实现复制缓存。当其中一个实例触发更改时,应用程序服务器的多个实例应更新其缓存副本。我试图实现一个独立的应用程序来模拟这一点

我有一个SpringBootREST应用程序,它使用SpringData的crudepository。我通过添加@Cacheable注释启用了缓存

@RepositoryRestResource
public interface PersonRepository extends CrudRepository<Person,Long>{

    @Cacheable(value="myCache")
    List<Person> findAll();

    @Override
    @CacheEvict(value="myCache", allEntries=true)
    Person save(Person p);

}

如何通过一些自定义代码更新spring管理的缓存?需要更新时有两个事件

  1. 调用save方法时,我希望执行jms生产者代码,将java对象(Person)推送到jms主题上。在save方法中保存java对象之后,如何添加自定义行为来调用jms生产者代码

  2. 更新jms使用者代码中的缓存(myCache)。我如何才能在spring数据存储库中获取此接口外部的缓存句柄,以便这样做

谢谢


共 (0) 个答案