在spring 2.x以后,spring MVC有了基于注解驱动的配置方式,可以方便开发。
不需要继承任何父类或接口。
例如:
@Controller
@RequestMapping("/simple.htm") <---响应的URL地址
public class SimpleController{
@RequestMapping <---默认的响应方法
public void simpleHandler(){
//业务代码
//返回的是名为simple的视图
}
}
如果需要在控制器中注入相关的业务类,直接用@Autowired即可。如:
@Autowired <--自动到bean容器中寻找到business名字的bean注入
private IBusiness business;
当然需要经过相应的配置才能将原来文件式的配置方式改为注解式的。在MVC的xml配置文件中加入
<context:component-scan base-package="cn.liyue.xx.business" />
表示会自动从配置的路径中寻找配置了@Controller,@Service..的类,将其添加到bean容器中。
只要添加这样一句就可以实现整个流程了。是不是很方便,前后加起来算上配置文件也只有几十行。
-----------------------------------------------------------------------------------
handler可以写成各种方式的。
1.和上面的效果一样,但返回的是名为view的视图,可以通过viewResolver配置。
但这样的配置方式,可以在一个controller中配置多个url
@RequestMapping("/simple.htm")
public String simpleHandler(){
//业务代码
return "view";
}
2.URL可以区分客户端是用GET还是POST方式发送的请求
@Controller
@RequestMapping("/simple.htm")
public class SimpleController{
@RequestMapping(method = RequestMethod.POST) <---- invoke post url
public void SimpleHandler(){
//业务代码
}
}
3.也可以配置成像struts的一个controller一个url地址,然后使用method区分
@Controller
@RequestMapping("/simple.htm")
public class SimpleController{
@RequestMapping(params = "method=simple", method = RequestMethod.POST)
<---- 使用参数method区分 /simple.htm?method=simple
public void SimpleHandler(){
//业务代码
}
@RequestMapping(params = "method=simple2", method = RequestMethod.POST)
<---- 使用参数method区分 /simple.htm?method=simple2
public void SimpleHandler(){
//业务代码
}
}
