Spring MVC 注解类型

Spring 2.5 引入了注解

基于注解的控制器的优势

1. 一个控制器类可以处理多个动作,而一个实现了 Controller 接口的控制器只能处理一个动作

2. 基于注解的控制器的请求映射不需要存储在配置文件中,使用 RequestMapping 注解类型,可以对一个方法进行请求处理。

Controller 注解类型

org.springframework.stereotype.Controller 注解类型用于指示 Spring 类的实例是一个控制器类

package com.example.controller;

import org.springframework.stereotype;
...

@Controller
public class CustomerController {
    // request-handling methods here
}

Spring 使用扫描机制来找到应用程序中所有基于注解的控制器,但需要做两项配置

1. 在 Spring MVC 的配置文件中声明 spring-context

2. 使用 <component-scan /> 元素指定控制器类的基本包,确保所有的控制器类都在基本包下,并且不要指定一个过于广泛的基本包,防止 Spring 扫描无关的包

<?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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       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">
                           
    <!-- ... -->
    <context:component-scan base-package="com.example.controller" />
    <!-- ... -->
</beans>

RequestMapping 注解类型

org.springframework.web.bind.annotation.RequestMapping 注解类型的作用是映射一个请求和一种方法,可以使用 RequestMapping 注解一种方法或类。

一个采用 @RequestMapping 注解的方法将成为一个请求处理方法,并由调度程序在接收到对应的 URL 请求时调用。

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
...

@Controller
public class CustomerController {

//@RequestMapping("/customer_input") @RequestMapping(value
= "/customer_input") // value 属性将 URI 映射到方法, value是默认属性,如果只有 value 属性的话,可以省略属性名称 public String inputCustomer() { // do something here return "CustomerForm" } }

@RequestMapping 的属性值有

扫描二维码关注公众号,回复: 4149650 查看本文章
value  // 将 URI 映射到方法,默认属性,只有 value 属性时 可省略属性名
method  // 指示该方法仅处理那些 HTTP 方法;如果没有指定 method 属性,则请求处理方法可以处理任意 HTTP 方法。

猜你喜欢

转载自www.cnblogs.com/0820LL/p/9986651.html