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配置过程出错

springmvc通过xml启动组件扫描

Spring基于注解及SpringMVC

Spring MVC 梳理 - 四种HandlerMapping

SSM整合搭建

java学习--SpringMVC使用及注解