我的应用程序列表中包含客户和用户。我想在开始时获取它们的列表。然后使用本地存储的数据,而不是DB。
你能用一些例子向我建议一些方法吗?
我想一下HttpSession对象?但我不确定是否可以? 因为此数据应该仅对已登录的用户可用,该用户在启动时访问它。
每个申请页面上都有客户名单!
答案 0 :(得分:1)
查看Spring缓存http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html
您可以注释您的存储库方法:
@Cacheable(value="customer", key="#prsonalNum")
public Customer findCustomer(String prsonalNum) {
...
}
应用程序将仅在第一次进入方法体。之后,该值将从缓存中获取。
例如,当您更新某个客户时,您也可以逐出缓存。
@CacheEvict(value="customer", allEntries=true)
public void addCustomer(Customer cust)
答案 1 :(得分:1)
要使用缓存同步插入和更新操作,请使用@CachePut注释,并使用@CacheEvict注释将删除操作与缓存同步。
使用相同的缓存名称(值参数)和相同的键值
您应该在其中一个配置类上使用@EnableCaching批注启用缓存。
答案 2 :(得分:0)
您仍然可以使用HttpSession对象,但是,只将其放入会话一次,用户已登录...并且您可以在页面关闭时将其从会话中删除...
答案 3 :(得分:0)
如果您想多次重复使用数据,并且不希望每次都进行查询。我建议创建一个简单的Cache suing HashMap或HashTable。
您可以轻松地在这种数据结构中的每个ID中保存客户列表。
并且在春季,您可以轻松创建一个单独的bean,它将保存此hashmap并可在整个应用程序中访问。