我使用的是最新版本的spring和缓存概念。我的(rest)服务类似乎没有注入缓存注释。如果我删除它们,它可以完美地工作,但我不使用缓存,这不是我想要的。
应用程序:
@SpringBootApplication
@EnableCaching
public class MyApplication{
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean
public CacheManager cacheManager() {
SimpleCacheManager cacheManager = new SimpleCacheManager();
cacheManager.setCaches(Arrays.asList(new ConcurrentMapCache("MyCache")));
return cacheManager;
}
服务:
@CacheConfig(cacheNames = "MyCache")
@Service
public class MyServiceImpl implements MyService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final String errormessage = "Error getting books";
@Autowired
private UserRepositoryCrud userRepository;
public MyServiceImpl () {
}
@Override
@Cacheable(value = "MyCache", key = "#description", unless = "#result?.size() > 0")
public final List<Books> getBooks(String description) {
logger.debug("Starting getBooksService");
//service implementation ...
(我还有一个只调用此服务的Restcontroler)调用此方法getBooks时,我在记录器上得到了一个null指针,但在调试时,我意识到所有内容都是null,即使是errormessage字符串。。。如果我删除@Cacheable注释,它就会工作,但我没有缓存工作,这不是我想要的。
你知道会出什么问题吗?
谢谢,
伙计们,我发现了问题...因为方法是最终的!!!我花了很多时间才找到这个!
我想将主数据缓存到Redis。 所以,我写了这些代码。 和 和ymlfile 但是,缓存不工作... 无论何时调用printTest方法,都将执行“getTest”方法。Redis没有数据。。。我的代码中有什么问题? SpringBoot版本是1.4.0 依赖关系是
我有一个简单的spring boot with redis应用程序,我正在构建该应用程序来缓存3个实体的主数据:电子邮件、产品和国家。我使用了spring boot starter依赖项 我还在应用程序中使用启动配置。属性文件 可缓存方法包括 问题是,一旦我从这个类加载其中一个方法,其他两个方法返回与第一个方法相同的数据,即使它们返回不同的列表,并且具有不同的可缓存注释值。我做错了什么?
问题内容: 我正在使用Spring 3和Hibernate 3.6开发Web应用程序。目前,我尝试了解Spring和Hibernate的缓存工作原理。我找到了一些有关使用Hibernate进行缓存的资源以及一些有关Spring的资源,现在我尝试将我的信息汇总在一起。我仍然对这两个框架都有一些疑问,如果有人可以回答或告诉我这里列出的事实是否正确,我将很高兴。 在大多数情况下,简短的回答(是/否)就足
我在后台使用PostgreSQL数据库,在Spring Boot中使用Spring数据。 我有一个@Controller; 调用具有@Transactional(readOnly=false)的服务层方法。该方法从头构建实体对象,并使用entityRepository中内置的Spring数据将其保存到数据库中。saveAndFlush(实体) 然后通过RestTemplate调用共享同一数据库的远
我们在reactjs应用程序中安装了离线插件,该应用程序使用service worker缓存构建文件,未检查新构建的任何更新,因此,具有旧构建的用户仍在使用service worker中的缓存数据访问旧站点。这些文件没有过期设置,所以我想知道是否有任何解决方案可以强制用户刷新页面或将更新推给用户? 我在新版本中进行了更新,没有缓存头,离线插件自动更新,但我仍然无法找到将此更新推送到旧用户文件的方法
主要内容:缓存穿透,缓存击穿,缓存雪崩在实际的业务场景中,Redis 一般和其他数据库搭配使用,用来减轻后端数据库的压力,比如和关系型数据库 MySQL 配合使用。 Redis 会把 MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到 MySQL 中去查询了,而是直接获取 Redis 中的缓存数据,从而降低了后端数据库的读取压力。如果说用户查询的数据 Redis 没有,此时用户的查询请求就会转到