使用Idea構建springmvc框架,出現no bean named ‘cacheManager’ is defined 錯誤。

H_cming發表於2018-05-16

轉自:https://blog.csdn.net/qq_23184291/article/details/78086398


配置springmvc-servlet.xml檔案,配置好包掃描,mvc註解,及檢視解釋配置

注意用黑框標註出來的部分
由於IDEA的自動補全功能非常強大,當你配置 <mvc:annotation-driven/>
後編譯器會幫你自動補全上面兩個配置檔案約束。這個時候如果你沒注意的就會爆出一個很莫名奇妙的錯:這裡寫圖片描述
- 上面主要爆這個錯:九月 25, 2017 8:40:23 上午 org.apache.catalina.core.ApplicationContext log
資訊: Initializing Spring FrameworkServlet ‘springmvc’
九月 25, 2017 8:40:23 上午 org.apache.catalina.core.ApplicationContext log
嚴重: StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.springframework.cache.interceptor.CacheInterceptor#0’: Cannot resolve reference to bean ‘cacheManager’ while setting bean property ‘cacheManager’; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘cacheManager’ is defined
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329).getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)。

報錯原因是:Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘cacheManager’ is defined

這裡主要是因為上面springmvc-servlet.xml配置檔案中由於IDEA自動配置啦cache,但配置檔案中又沒有指定快取的空間,JVM虛擬機器中也有個cacheManage,這就導致spring進行bean管理時掃描到兩個cache Manage 導致都不能正常載入,爆錯,而你在配置時明明沒有使用到快取,卻老是報一個快取的錯誤,實在很懵逼。

  1. 解決辦法
    這裡寫圖片描述

  2. 正確的配置檔案是這個樣子的


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <context:component-scan base-package="controller"/>
    <mvc:annotation-driven/>
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

相關文章