|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
概述
继Spring2.0对SpringMVC举行严重晋级后,Spring2.5又为SpringMVC引进了注解驱动功效。如今你不必让Controller承继任何接口,无需在XML设置文件中界说哀求和Controller的映照干系,仅仅利用注解就能够让一个POJO具有Controller的尽年夜部分功效——SpringMVC框架的易用性失掉了进一步的加强.在框架天真性、易用性和扩大性上,SpringMVC已周全超出了别的的MVC框架,陪伴着Spring一起高唱大进,能够预感SpringMVC在MVC市场上的吸引力将愈来愈不成顺从。
本文将先容Spring2.5新增的SpingMVC注解功效,报告怎样利用注解设置交换传统的基于XML的SpringMVC设置。
一个复杂的基于注解的Controller
利用太低版本SpringMVC的读者都晓得:当创立一个Controller时,我们必要间接或直接地完成org.springframework.web.servlet.mvc.Controller接口。一样平常情形下,我们是经由过程承继SimpleFormController或MultiActionController来界说本人的Controller的。在界说Controller后,一个主要的事务是在SpringMVC的设置文件中经由过程HandlerMapping界说哀求和把持器的映照干系,以便将二者联系关系起来。
来看一下基于注解的Controller是怎样界说做到这一点的,上面是利用注解的BbtForumController:
清单1.BbtForumController.java
package com.baobaotao.web;
import com.baobaotao.service.BbtForumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.Collection;
@Controller //<——①
@RequestMapping("/forum.do")
public class BbtForumController {
@Autowired
private BbtForumService bbtForumService;
@RequestMapping //<——②
public String listAllBoard() {
bbtForumService.getAllBoard();
System.out.println("call listAllBoard method.");
return "listBoard";
}
}
从下面代码中,我们能够看出BbtForumController和一样平常的类并没有区分,它没有完成任何特别的接口,因此是一个隧道的POJO。让这个POJO不同凡响的魔棒就是SpringMVC的注解!
在①处利用了两个注解,分离是@Controller和@RequestMapping。在“利用Spring2.5基于注解驱动的IoC”这篇文章里,笔者已经指出过@Controller、@Service和@Repository和@Component注解的感化是等价的:将一个类成为Spring容器的Bean。因为SpringMVC的Controller必需事前是一个Bean,以是@Controller注解是不成短少的。
真正让BbtForumController具有SpringMVCController功效的是@RequestMapping这个注解。@RequestMapping能够标注在类界说处,将Controller和特定哀求联系关系起来;还能够标注在办法署名处,以便进一步对哀求举行分流。在①处,我们让BbtForumController联系关系“/forum.do”的哀求,而②处,我们详细地指定listAllBoard()办法来处置哀求。以是在类声明处标注的@RequestMapping相称于让POJO完成了Controller接口,而在办法界说处的@RequestMapping相称于让POJO扩大Spring预界说的Controller(如SimpleFormController等)。
为了让基于注解的SpringMVC真正事情起来,必要在SpringMVC对应的xxx-servlet.xml设置文件中做一些四肢举动。在此之前,仍是先来看一下web.xml的设置吧:
<p>
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点 |
|