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 的属性值有
value // 将 URI 映射到方法,默认属性,只有 value 属性时 可省略属性名 method // 指示该方法仅处理那些 HTTP 方法;如果没有指定 method 属性,则请求处理方法可以处理任意 HTTP 方法。
原文地址:https://www.cnblogs.com/0820LL/p/9986651.html
时间: 2024-10-05 23:40:52