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 @ 2020-04-07 11:31  安徒生敲代码  阅读(168)  评论(0编辑  收藏  举报