springMVC基于注解的控制器

springMVC基于注解的控制器的优点有两个:

1、控制器可以处理多个动作,这就允许将相关操作写在一个类中。
2、控制器的请求映射不需要存储在配置文件中。使用requestMapping注释类型,可以对一个方法进行请求处理。
 
接下来介绍两个最重要的注释类型:

一、controller注释类型

这种注释类型用于指示Spring类的实例是一个实例;
import org.springframework.stereotype;
public class CustemerController{
//methods
}
Spring 使用扫描机制来找到应用程序中所有基于注解的控制器类;

1、配置spring-context

<beans
...
xmlns:context="http://www.springframework.org/schema/context"
...
>

2、配置<component-scan/>

假设所有的控制器类都在com.example.controller及其子包中
<context:component-scan base-package="com.example.controller"/>
 

二、RequestMapping注解类型

1、为每个动作开发相应的处理方法。

使用org.springframework.web.bind.annotation.RequestMapping注解类型映射URI和方法;

RequestMapping映射了一个请求和一种方法。可以使用@RequestMapping注解一种方法或类。
看下面例子:
@Controller
public class CustemerController{
@RequestMapping(value = "/customer_input")
public String inputCustemer(){
//do something
return "CustemerForm";
}
}
value 属性就是将URI映射到方法。
value属性是默认的属性,如果只有一个属性,则可省略属性名称;
@RequestMapping("/customer_input")
超过一个属性,必须写value属性名称;
 
除了value属性,还有其他属性,如method属性用来指示该方法处理哪些HTTP方法。
@RequestMapping(value = "/customer_input",method={RequestMethod.POST,RequestMethod.PUT})
或者只有一个HTTP方法值,则使用
@RequestMapping(value = "/customer_input",method=RequestMethod.POST)
 
RequestMapping注释类型也可用来注释一个控制类
@Controller
@RequestMapping(value = "/customer_input")
public class inputCustemer(){ @RequestMapping(value = "/delete",method={RequestMethod.POST,RequestMethod.PUT})
pulic String deleteCustemer(){
//do something
return "CustemerForm";
}
}

2、请求处理方法

每个请求处理方法可以有多个不同类型的参数,记忆一个多钟类型的返回结果。
传递参数的方式:
@RequestMapping(value = "/delete",method={RequestMethod.POST,RequestMethod.PUT})
pulic String deleteCustemer(HttpSession session){
//do something
return "CustemerForm";//指向了视图(页面)的名称
}

参数类型:

 
请求处理方法的返回类型:
ModelAndView
Model
Map
View()
void
代表逻辑视图名的String(就是上面例子中请求处理方法返回的String类型)
callable
等等
 

3、应用@Autowired和@Service 进行依赖注入

 
将依赖注入到SpringMVC控制器的最简单方法就是通过注解@Autowired到字段或方法;此外,为了能被作为依赖注入,类必须要注明为@Service ,在配置文件中,还需要添加一个<component-scan/>元素来扫描依赖基本包。
 
@Autowired
private ProductService productService
 
productService是一个提供处理产品方法的接口,将productService的一个实例注入到某类中。
 
 
 

springMVC基于注解的控制器的更多相关文章

  1. 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

     1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mv ...

  2. SpringMVC传统风格控制器和基于注解的控制器

    SpringMVC的DispatcherServlet 之前说过springMVC是使用Servlet作为控制器,就是这个用于调度的DispatcherServlet了.这个是servlet,可以根据 ...

  3. 缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例

    之前为大家介绍了如何使用spring注解来进行缓存配置 (EHCache 和 OSCache)的简单的例子,详见 Spring基于注解的缓存配置--EHCache AND OSCache 现在介绍一下 ...

  4. 【spring springmvc】springmvc使用注解声明控制器与请求映射

    目录 概述 壹:注解说明 贰:实现注解声明控制器与请求映射 一:使用controller 二:配置包扫描与视图解析器 1.配置包扫描 2.配置试图解析器 三:配置部署描述符 1.读取spring-mv ...

  5. springMVC 基于注解的controller

    概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...

  6. SpringMVC 基于注解的Controller详解

    本文出处 http://blog.csdn.net/lufeng20/article/details/7598801 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spri ...

  7. SpringMVC 基于注解的Controller @RequestMapping @RequestParam..

    概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...

  8. springmvc基于注解的权限控制

    一.权限码 /** * @Title: AuthCode.java * @Package cn.com.kamfu.auth * @Description: TODO(用一句话描述该文件做什么) * ...

  9. spring-mvc基于注解的配置

    将配置文件修改为: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...

随机推荐

  1. P3950 部落冲突

    题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多 ...

  2. 二,PHP缓存机制详解

    一,PHP缓存机制详解 我们可以使用PHP自带的缓存机制来完成页面静态化,但是仅靠PHP自身的缓存机制并不能完美的解决页面静态化,往往需要和其他静态化技术(通常是伪静态技术)结合使用. output ...

  3. 2,ThreadGroup 概念以及用法

    当一个任务需要多个子线程去处理业务,这时候不希望这些子线程杂乱无章, 就需要把这些线程统一管理起来,这时候线程组就产生了. ThreadGroup  常用方法讲解 activeCount()   返回 ...

  4. Ionic2:创建App启动页滑动欢迎界面

    来自:https://my.oschina.net/qinphil/blog/777787 著作权归原创作者所有,如有再转,请自觉标明原创出处,以示尊重! 摘要: 每个有逼格的App在第一次启动时都有 ...

  5. 2016级算法第五次上机-B.Bamboo&APTX4844魔发药水

    Bamboo&APTX4844魔发药水 题意 "于是,Bamboo耐着性子,看巫师从袖子里掏出 M 瓶时光泉水和 K 粒绿色能量.每瓶时光泉水重量为 c ,生发效果为 l:每粒绿色能 ...

  6. 编程开发之--Oracle数据库--存储过程和存储函数(1)

    1.存储过程和存储函数 描述:指存储在数据库中供所有用户程序调用的子程序叫做存储过程.存储函数 区别:存储函数可以通过return子句返回一个函数的值 (1)存储过程 语法:create [or re ...

  7. jvm内存分部

    首先我们必须要知道的是 Java 是跨平台的.java常用的名词有jdk,jre,jvm jdk包括后两者,是开发者工具集, jre表示java运行环境, jvm是java虚拟机,是java夸平台的保 ...

  8. Java中不通过构造方法创建对象的方法总结

    我们常说,Java是一种面向对象的语言,因而在Java中几乎所有的操作都离不开对象.而在Java语言中,最常见的创建对象的方法是通过对类构造器的调用,除此之外,其实还有下面几种可以创建对象的方法. 1 ...

  9. 使用 json_serializable (flutter packages pub run build_runner build) 问题

    命令: flutter packages pub run build_runner build 使用 build_runner 生成 .g.dart 文件 flutter packages pub r ...

  10. Linux and Shell 实用命令

    -name '*.jar' -printf '%p:' ### 查看CPU使用率 mpstat -P ALL