14 个 SpringMVC顶级技巧,随时用随时爽
译文:blog.csdn.net/Summer_Lyf/article/details/102911215
原文:dzone.com/articles/14-tips-for-writing-spring-mvc-
通常 , 在Spring MVC中 , 我们编写一个控制器类来处理来自客户端的请求 。 然后 , 控制器调用业务类来处理与业务相关的任务 , 然后将客户端重定向到逻辑视图名称 , 该名称由Spring的调度程序Servlet解析 , 以呈现结果或输出 。
这样就完成了典型的请求-响应周期的往返 。
今天整理了一下编写Spring MVC控制器的14个技巧 , 你今天get到了吗?(≧▽≦)/
1.使用@Controller构造型这是创建可以处理一个或多个请求的控制器类的最简单方法 。 仅通过用构造型注释一个类@Controller, 例如:
import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HomeController {@RequestMapping("/")public String visitHome() {return "home";}}如你所见 , visitHome()方法通过重定向到名为home的视图来处理来自应用程序上下文路径(/)的请求 。
注意:@Controller原型只能在Spring的配置文件中启用注解驱动时使用:
启用注释驱动时 , Spring容器自动在以下语句指定的包下扫描类:
由@Controller 注释注释的类被配置为控制器 。 这是最可取的 , 因为它很简单:无需在配置文件中为控制器声明bean 。
注意:通过使用@Controller 注解 , 您可以拥有一个多动作控制器类 , 该类能够处理多个不同的请求 。 例如:
@Controllerpublic class MultiActionController {@RequestMapping("/listUsers")public ModelAndView listUsers() {}@RequestMapping("/saveUser")public ModelAndView saveUser(User user) {}@RequestMapping("/deleteUser")public ModelAndView deleteUser(User user) {}}正如你可以在上面的控制器类看 , 有处理三种不同的请求3种处理方法 /listUsers , /saveUser , 和/deleteUser分别 。
2.实现控制器接口在Spring MVC中创建控制器的另一种(也许是经典的)方法是让类实现 Controller 接口 。 例如:
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;public class MainController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {System.out.println("Welcome main");return new ModelAndView("main");}}实现类必须重写该 handleRequest() 方法 , 当匹配请求进入时 , 该方法将由Spring调度程序Servlet调用 。 此控制器处理的请求URL模式在Spring的上下文配置文件中定义如下:
但是 , 此方法的缺点是控制器类无法处理多个请求URL 。
3.扩展AbstractController类如果要轻松控制受支持的HTTP方法 , 会话和内容缓存 。 扩展你的控制器 AbstractController 类是理想的选择 。 请考虑以下示例:
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractController;public class BigController extends AbstractController {@Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception {System.out.println("You're big!");return new ModelAndView("big");}}
推荐阅读
- 手机内存不足别乱删,学会这5个技巧,让手机释放大量空间
- 小米11操作小技巧:可开启全局120Hz
- 华为EMUI系统隐藏的12个技巧,难怪别人都说华为手机好用
- 小米11发布 首发高通骁龙888还有顶级屏幕售价3999起
- 最强做工配顶级散热!iGame RTX 3090 Vulcan OC评测
- 你真的会用iPhone吗?14个iOS实用技巧,你未必都知道
- 小米11烟紫色开箱图赏:首发骁龙888 最顶级2K手机屏
- 能背着走的顶级生产力!戴尔Precision 7750移动工作站评测
- 一张图看懂小米11 首发高通骁龙888配备行业顶级屏幕
- 小米11顶级屏——康宁新一代大猩猩玻璃Victus
