SpringMVC组件扫描,HandlerMapping配置,servlet配置过程出错
Posted TracyDemo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC组件扫描,HandlerMapping配置,servlet配置过程出错相关的知识,希望对你有一定的参考价值。
1.引入了前缀,解决了前缀问题
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
组件扫描
将组件扫描<context:component-scan base-package="*"/>
将扫描全部改到扫描具体的包下
不断导入jar包,错误又是不同的
其他人链接:https://blog.csdn.net/m0_37927008/article/details/78288509
出现No mapping情况
无非几种情况 1、controller没被扫描注册到 2、RequestMaping 的映射地址写错 3、映射后缀的问题
这是我的Controller
No mapping 就是映射问题,我写的是
@RequestMapping("./login.do")报错,将./去掉编译成功,成功跳到jsp
junit不断取组件值,确认是否被扫描到,Contoller组件是扫描到,可以获取到,然后再确认HandlerMapping是否配置
@Test public void test() { ApplicationContext ac=new ClassPathXmlApplicationContext("./spring-mvc.xml"); LoginController lc=ac.getBean("loginController",LoginController.class); System.out.print(lc); }
spring-mvc.xml
<!-- 配置HandlerMapping 开启注解配置 --> <!-- 配置mvc标注扫描 --> <mvc:annotation-driven/> <!-- 开启组件扫描 --> <context:component-scan base-package="com.tracy.*"></context:component-scan> <!-- 配置ViewResolver --> <bean id="ModelAndView" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean>
LoginController
@Controller public class LoginController { @RequestMapping("login.do") public String execute1() { return "login"; } }
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
不能够自动注入,不知道什么错误,什么也没有修改,运行成功,显示的无法注入,Spring容器未实例化,未创建对象,也未注入,应该是缓存问题,可能出现的问题,,,配置文件初始化可能有先后顺序,先实例化,然后在扫描,根据注入的参数,进行注入。
进行组件扫描的时候,
String[] config= {"spring-mvc.xml","./spring-dao.xml"};
ApplicationContext ac=new ClassPathXmlApplicationContext(config);
如只写了一个xml,在进行注解扫描的时候,spring-dao.xml实例化JdbcTemplate组件进行注入,spring-mvc.xml组件扫描配置,只获取了此容器,在扫描Autowire组件时候,JdbcTemplate无法注入
以上是关于SpringMVC组件扫描,HandlerMapping配置,servlet配置过程出错的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC组件扫描,HandlerMapping配置,servlet配置过程出错