admin管理员组

文章数量:1623785

添加注解
@Autowired
private CacheManager cacheManager;
报错,日志如下:

2023-03-07 14:29:06.231  WARN 10340 --- [  restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization- cancelling refresh attempt:
 org.springframework.beans.factory.
UnsatisfiedDependencyException: Error creating bean with name 'dishController': 
Unsatisfied dependency expressed through field 'cacheManager';
 nested exception is org.springframework.beans.factory.
 NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cache.CacheManager' available:
  expected at least 1 bean which qualifies as autowire candidate. 
  Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
2023-03-07 14:29:06.247  INFO 10340 --- [  restartedMain] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} closing ...
2023-03-07 14:29:06.247  INFO 10340 --- [  restartedMain] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} closed
2023-03-07 14:29:06.247  INFO 10340 --- [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2023-03-07 14:29:06.262  INFO 10340 --- [  restartedMain] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-03-07 14:29:06.278 ERROR 10340 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Field cacheManager in com.psl.reggie.controller.DishController required a bean of type 'org.springframework.cache.CacheManager' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'org.springframework.cache.CacheManager' in your configuration.


Process finished with exit code 1

分析:

NoSuchBeanDefinitionException: 
No qualifying bean of type 'org.springframework.cache.CacheManager' available:
  expected at least 1 bean which qualifies as autowire candidate. 
  Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

ioc容器内没有该对象的bean,要添加进入

解决方法:

在启动类前添加
@EnableCaching

EnableCaching源码注释:Enables Spring’s annotation-driven cache management capability, similar to the * support found in Spring’s {@code cache:*} XML namespace.

@EnableCaching是一个在配置类上使用的注解,它启用了Spring对缓存的支持。当使用@EnableCaching注解时,Spring会创建一个缓存管理器,并将其注册为一个bean。此外,它还会扫描应用程序上下文中的所有组件,检查它们是否使用了缓存相关的注解,如@Cacheable、@CachePut、@CacheEvict等。

本文标签: expressedFieldUnsatisfiedDependencyCacheManager