示例2 基于注解的控制器
示例2 基于注解的控制器
从Spring2.5
开始新增了基于注解的控制器,也就是说控制器不用实现Controller
接口,通过注解类型来描述。下面将SpringMVCTest
这个Web
应用进行修改演示一个基于注解的控制器Spring MVC
的Web
应用.
新建一个Dynamic Web Project
,也就是新建一个动态Web
项目,命名为AnnotationTest
。所有步骤和2.3.3节的”第一个Spring MVC
应用”示例一样,只是修改两个地方
项目结构
展开/折叠
G:\Desktop\随书源码\Spring+Mybatis企业应用实战(第2版)\codes\02\AnnotationTest ├─src\ │ └─org\ │ └─fkit\ │ └─controller\ │ └─HelloController.java └─WebContent\ ├─META-INF\ │ └─MANIFEST.MF └─WEB-INF\ ├─content\ │ └─welcome.jsp ├─lib\ │ ├─commons-logging-1.2.jar │ ├─spring-aop-5.0.1.RELEASE.jar │ ├─spring-aspects-5.0.1.RELEASE.jar │ ├─spring-beans-5.0.1.RELEASE.jar │ ├─spring-context-5.0.1.RELEASE.jar │ ├─spring-context-indexer-5.0.1.RELEASE.jar │ ├─spring-context-support-5.0.1.RELEASE.jar │ ├─spring-core-5.0.1.RELEASE.jar │ ├─spring-expression-5.0.1.RELEASE.jar │ ├─spring-instrument-5.0.1.RELEASE.jar │ ├─spring-jcl-5.0.1.RELEASE.jar │ ├─spring-jdbc-5.0.1.RELEASE.jar │ ├─spring-jms-5.0.1.RELEASE.jar │ ├─spring-messaging-5.0.1.RELEASE.jar │ ├─spring-orm-5.0.1.RELEASE.jar │ ├─spring-oxm-5.0.1.RELEASE.jar │ ├─spring-test-5.0.1.RELEASE.jar │ ├─spring-tx-5.0.1.RELEASE.jar │ ├─spring-web-5.0.1.RELEASE.jar │ ├─spring-webflux-5.0.1.RELEASE.jar │ ├─spring-webmvc-5.0.1.RELEASE.jar │ └─spring-websocket-5.0.1.RELEASE.jar ├─springmvc-config.xml └─web.xml
1. Controller类的实现
HelloController
类不需要Controller
接口,改为使用注解类型来描述,处理/hello
请求。示例代码如下
1 | package org.fkit.controller; |
HelloController
是一个基于注解的控制器,org.springframework.stereotype.Controller
注释类型用于指示Spring
类的实例是一个控制器。org.springframework.web.bind.annotation.RequestMapping
注释类型用来映射一个请求和请求的方法, value="/hello"
表示请求由hello
方法进行处理。方法返回一个包含视图名或视图名和模型的ModelAndView
对象,这和2.3.4节中的示例一样。
2. 修改Spring MVC的配置文件
1 |
|
由于使用了注解类型,因此不需要再在配置文件中使用XML
描述Bean
。
扫描查找机制
Spring
使用扫描机制査找应用程序中所有基于注解的控制器类。<context:component-scan base-package="org.fkit.controller" />
指定需要Spring
扫描org.fkit.controller
包及其子包下面的所有Java
文件
此处还配置类型的处理器映射器RequestMappingHandlerMapping
,它根据请求査找映射;
同时配置了annotation
类型的处理器适配器RequestMappingHandlerAdapter
,来完成对Hellocontro11er
类的@RequestMapping
标注方法的调用;
最后配置了视图解析器InternalresourceviewResolver
来解析视图,将View
呈现给用户。
需要注意的是,在Spring4.0
之后,处理器映射器、处理器适配器的配置还可以使用更简便的方式,笔者在此处显示配置处理过程,是希望读者能够了解Spring MVC
的每一个动作,之后可以更好地理解Spring MVC
的工作流程
3. 测试
使用Eclipse
部署AnnotationTest
这个Web
应用,在浏览器中输入如下URL
来测试应用
1 | http://localhost:8080/AnnotationTest/hello |
此时浏览器上显示Hello World!
字符串,这表示Spring MVC
访问成功