我正在尝试使用activemq(jms)在Spring托管分布式应用程序中实现复制缓存。应用程序服务器的多个实例应在其中一个实例发生更改时更新其缓存副本。我正在尝试实现一个独立的应用程序来模仿这个。
我有一个使用spring数据的CrudRepository的spring boot rest应用程序。我通过添加@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管理的缓存?需要更新时有两个事件
当调用save方法时,我想执行jms生成器代码来推送jms主题上的java对象(Person)。如何在save方法中保存java对象后添加自定义行为来调用jms生成器代码?
更新jms使用者代码中的缓存(myCache)。如何才能在此接口外部的spring数据存储库中获取此缓存的句柄?
感谢。