Java笔记之SpringMVC(三):项目构建--注解方式

0.说在前面

  基于SpringMVC项目构建中的项目

1.修改springmvc.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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 方式一:非注解方式 -->
    <!-- 将welcome.action请求交给com.springmvc.demo.controller.WelcomeController处理 -->
    <!-- <bean name="/welcome.action" class="com.springmvc.demo.controller.WelcomeController"></bean> -->
    <!--配置处理器映射器 -->
    <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> -->
    <!-- 配置处理器适配器 -->
    <!-- <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> -->
    <!-- 方式二:注解方式 -->
    <!-- 开启注解扫描, base-package配置Controller所在的基础包-->
    <context:component-scan base-package="com.springmvc.demo.controller"></context:component-scan>
    
    <!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    
</beans>
复制代码

2.修改WelcomeController类,不再实现Controller接口,而是在类上添加@Controller注解声明该类是一个实现了Controller接口的类,在方法上使用@RequestMapping注解,声明该方法用于映射哪个请求

复制代码
package com.springmvc.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class WelcomeController{
    @RequestMapping("/welcome.action")
    public ModelAndView welcome(){
        ModelAndView mav=new ModelAndView();
        mav.addObject("message", "欢迎您:张三");
        mav.setViewName("welcome");
        return mav;
    }
}
复制代码

3.启动项目,点击index.jsp页面的"欢迎页面"链接,跳转到welcome.jsp页面

到此,使用注解的方式配置处理器映射器和处理器适配器也就完成了.

4.说明

  (1).在springmvc.xml文件中只配置了注解扫描和视图解析器

  注解扫描是用来指定Controller类所在的基础包,只要有请求来就到该包下去查找映射了该请求的Controller类;

  视图解析器就是对Controller类返回的视图进行处理和数据填充操作;

  (2).springmvc.xml文件中并没有对处理器映射器和处理器适配器进行配置,就会使用默认配置

  

  打开DispatcherServlet.properties文件,可以看到标蓝的部分就是对处理器映射器和处理器适配器的默认配置,标红的部分分别就是注解方式默认使用的处理器映射器和处理器适配器,没有标红的部分就是使用非注解方式使用的处理器映射器和处理器适配器,所以也可以把SpringMVC项目构建项目中springmvc.xml中关于处理器映射器和处理器适配器的配置去掉,运行也是没有问题的.

复制代码
# Default implementation classes for DispatcherServlet's strategy interfaces.
# Used as fallback when no matching beans are found in the DispatcherServlet context.
# Not meant to be customized by application developers.

org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver

org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixedThemeResolver

org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\
    org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver,\
    org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,\
    org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator

org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver

org.springframework.web.servlet.FlashMapManager=org.springframework.web.servlet.support.SessionFlashMapManager
复制代码
posted @   安徒生敲代码  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示