Spring Cacheable的问题 - 不注入服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cacheable的问题 - 不注入服务相关的知识,希望对你有一定的参考价值。
我正在使用最新版本的spring并使用缓存概念。我的(其余)服务类似乎没有注入缓存注释。如果我删除它们它完美地工作但是我不使用不是我想要的缓存。
应用:
@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时,我在记录器上得到了一个nullpointer,但是在调试时我意识到一切都是null,即使是errormessage字符串......如果我删除@Cacheable注释,它然后工作,但我没有缓存工作,这不是我想要的。
你知道什么是错的吗?
非常感谢,
答案
伙计们我发现了这个问题...因为这个方法是最终的!我花了很多时间才发现这个!
以上是关于Spring Cacheable的问题 - 不注入服务的主要内容,如果未能解决你的问题,请参考以下文章