解决将application.xml配置文件分割成为Spring.xml和Springmvc.xml启动报404问题

**分析思路
启动服务器报404,一般是路径错误,文件找不到类,有时是配置文件单词写错,或则是符号缺胳膊少腿,或则多写了。
但是经过多次排查后,发现配置文件,路径均没有问题,index.jsp页面还是加载不出东西,查看控制台信息,如图所示:

在这里插入图片描述
根据控制台上的信息,我找到LanguageController这个类,将它自动装配的属性的注解由以前的:
@Autowired
private ResourceBundleMessageSource messageSource;
改为:
@Autowired(required=true)
private ResourceBundleMessageSource messageSource;再次启动,发现页面还是加载不出来,然后将又它改成:
@Autowired(required=false)
private ResourceBundleMessageSource messageSource;再次启就可以了。
原因
Spring.xml相当于是一个在外面的大容器(父亲),而SpringMVC.xml相当于是Speing.xml里面的小容器(儿子),
又继承关系可知:儿子可以继承父亲的东西(SpringMVC.xml可以访问Spring.xml里面的类容),而父亲却没有儿子遗传变异的基因(Spring.xml却不能访问SpeingMVC.xml里面的东西)。
在容器启动时,会先加载父容器,后加载子容器,容器中的初始化也已经完成,所以Controller中的Service可以正常注入(父亲注入儿子,儿子不能注入父亲),但是当前容器不能自己注入自己(父亲不能注入自己,儿子也不能注入自己),注入不进去又会一直注入,陷入死循环,找不到要注入的bean。
required属性
@Autowired(required=true):当使用@Autowired注解的时候,其实默认就是@Autowired(required=true),表示注入的时候,该bean必须存在,否则就会注入失败。

@Autowired(required=false):表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的springmvc-config.xml配置文件的例子: ```xml <?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="com.example.controller"/> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 配置静态资源处理 --> <mvc:resources mapping="/static/**" location="/static/"/> <!-- 配置RequestMappingHandlerAdapter --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> <!-- 配置RequestMappingHandlerMapping --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> </beans> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Su魏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值