营销型 展示类网站模板,wordpress通栏图片插件,google广告联盟网站,app开发公司办公室设计在 Spring MVC 中#xff0c;注解可以说是开发者的“魔法棒”#xff0c;通过简单的注解配置#xff0c;开发者能够实现请求处理、参数绑定、响应返回等复杂功能#xff0c;真正做到“少写代码多干活”。 我们接下来就来一起看看 Spring MVC 中常用的注解#xff0c;它们的… 在 Spring MVC 中注解可以说是开发者的“魔法棒”通过简单的注解配置开发者能够实现请求处理、参数绑定、响应返回等复杂功能真正做到“少写代码多干活”。 我们接下来就来一起看看 Spring MVC 中常用的注解它们的功能是什么又该如何使用。如果你对这些注解已经有所了解那不妨通过本文再来巩固一下说不定还能学到一些新玩法 1. Controller声明控制器的身份
Controller 是 Spring MVC 中的核心注解用于标识一个类为控制器组件。控制器是 MVC 中的“C”负责接收请求、调用业务逻辑并返回视图可以是一个页面可以是JSON数据。
示例
Controller
public class UserController {RequestMapping(/hello)public String sayHello() {return helloView; // 返回视图名}
}
工作原理 被 Controller 标注的类会被 Spring 容器扫描并注册为一个 Bean。 配合其他注解处理请求映射和参数绑定。 小提示Controller 是 Component 的派生注解因此它也会被自动扫描到 Spring 容器中。 2. RequestMapping请求路径的导航标志
RequestMapping 用于定义请求路径与控制器方法的映射关系是 Spring MVC 中最常见的注解之一。
功能特点 可以作用在类上指定控制器的基础路径。 可以作用在方法上进一步指定具体路径。
示例
Controller
RequestMapping(/user)
public class UserController {
RequestMapping(/profile)public String getUserProfile() {return profileView; // 返回视图名}
} 请求路径 /user/profile 会被映射到 getUserProfile 方法。 扩展功能 可以指定请求方法如 GET、POST RequestMapping(value /update, method RequestMethod.POST)
public String updateUser() {return updateSuccess;
} 还可以用简化注解如 GetMapping、PostMapping 等。 3. RequestParam请求参数绑定到方法参数
RequestParam 用于将请求中的参数映射到方法参数。适用于 URL 查询参数如 ?nameJohn或表单提交的数据。
示例
Controller
RequestMapping(/user)
public class UserController {
RequestMapping(/greet)public String greetUser(RequestParam(name) String userName, Model model) {model.addAttribute(greeting, Hello, userName !);return greetView;}
} 请求路径 /user/greet?nameJohn 会将参数 name 的值映射到 userName。 可选参数 设置默认值 RequestParam(value age, defaultValue 18) int userAge 标记为可选 RequestParam(value nickname, required false) String nickname 4. PathVariableURL 中的路径变量映射
PathVariable 用于将 URL 中的动态路径部分绑定到方法参数。它非常适合 REST 风格的接口。
示例
Controller
RequestMapping(/user)
public class UserController {
RequestMapping(/{id})public String getUserById(PathVariable(id) int userId, Model model) {model.addAttribute(userId, userId);return userDetailView;}
}
请求路径 /user/123 会将 123 绑定到 userId 参数。 注意路径变量名称和方法参数名称一致时PathVariable 的 value 属性可以省略。 5. ModelAttribute对象绑定与预处理神器
ModelAttribute 用于将请求参数自动绑定到 Java 对象同时也可以用于在请求处理之前预填充数据。
自动绑定
Controller
RequestMapping(/user)
public class UserController {
RequestMapping(/register)public String registerUser(ModelAttribute User user) {// User 对象会自动绑定请求参数return registerSuccess;}
}
假设请求参数为 nameJohnage25Spring MVC 会将这些参数填充到 User 对象中。
预填充数据 当作用在方法上时可以在 Controller 方法执行前为模型添加数据
ModelAttribute
public void addDefaultAttributes(Model model) {model.addAttribute(appName, Spring MVC Demo);
} 6. RequestBody绑定请求体数据到方法参数
RequestBody 用于将 HTTP 请求体的数据直接绑定到方法参数上特别适用于处理 JSON 格式的请求体。
功能 将请求体数据反序列化为 Java 对象。 适用于 JSON、XML 等多种数据格式。 常用于 RESTful API简化请求体数据的处理。
示例
假设用户通过 POST 请求提交以下 JSON 数据
{name: Alice,age: 25
}
控制器代码
RestController
RequestMapping(/user)
public class UserController {
PostMapping(/register)public String registerUser(RequestBody User user) {return User registered: user.getName();}
} 说明 JSON 数据中的 name 和 age 会自动绑定到 User 对象的对应字段。 返回结果将是字符串User registered: Alice。 注意事项 请求头必须包含 Content-Type: application/json。 如果请求体为空或格式不正确会抛出异常如 HttpMessageNotReadableException建议配合全局异常处理器使用。 7. ResponseBody直接返回数据
ResponseBody 是一个强大的注解用于将方法的返回值直接作为 HTTP 响应体而不是视图名。它非常适合用来返回 JSON 或纯文本数据。
示例
Controller
RequestMapping(/api)
public class ApiController {
RequestMapping(/hello)ResponseBodypublic String sayHello() {return Hello, JSON!;}
}
请求 /api/hello 会直接返回字符串 Hello, JSON!。 扩展在现代项目中ResponseBody 更常与 RestController 一起使用。 8. RestController简化你的 REST API
RestController 是 Controller 和 ResponseBody 的组合注解专门用于构建 REST API。标记为 RestController 的类中的所有方法默认返回 JSON而不是视图。
示例
RestController
RequestMapping(/api)
public class ApiController {
GetMapping(/user/{id})public User getUser(PathVariable int id) {return new User(id, John);}
}
请求 /api/user/123 会返回一个 JSON 对象
{id: 123,name: John
} 总结注解让开发更简单
Spring MVC 提供了丰富的注解极大简化了 Web 开发的复杂度 Controller 和 RestController定义控制器。 RequestMapping映射请求路径。 RequestParam 和 PathVariable处理请求参数和路径变量。 ModelAttribute对象绑定和数据预填充。 RequestBody请求体为JSON对象的获取 ResponseBody直接返回数据。 这些注解让开发者能够专注于业务逻辑而不用担心底层的实现细节。如果你在项目中用到这些注解有什么有趣的用法或者疑问欢迎留言讨论
文章转载自: http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.cbnjt.cn.gov.cn.cbnjt.cn http://www.morning.zxznh.cn.gov.cn.zxznh.cn http://www.morning.tkyry.cn.gov.cn.tkyry.cn http://www.morning.kryxk.cn.gov.cn.kryxk.cn http://www.morning.httpm.cn.gov.cn.httpm.cn http://www.morning.hkng.cn.gov.cn.hkng.cn http://www.morning.ncfky.cn.gov.cn.ncfky.cn http://www.morning.twdwy.cn.gov.cn.twdwy.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.wnhgb.cn.gov.cn.wnhgb.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn http://www.morning.pbgnx.cn.gov.cn.pbgnx.cn http://www.morning.pffqh.cn.gov.cn.pffqh.cn http://www.morning.gglhj.cn.gov.cn.gglhj.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.xphls.cn.gov.cn.xphls.cn http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn http://www.morning.drmbh.cn.gov.cn.drmbh.cn http://www.morning.rwlns.cn.gov.cn.rwlns.cn http://www.morning.txmkx.cn.gov.cn.txmkx.cn http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.nuobeiergw.cn.gov.cn.nuobeiergw.cn http://www.morning.bljcb.cn.gov.cn.bljcb.cn http://www.morning.yhxhq.cn.gov.cn.yhxhq.cn http://www.morning.lqtwb.cn.gov.cn.lqtwb.cn http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.rjyd.cn.gov.cn.rjyd.cn http://www.morning.kzqpn.cn.gov.cn.kzqpn.cn http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com http://www.morning.txhls.cn.gov.cn.txhls.cn http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn http://www.morning.madamli.com.gov.cn.madamli.com http://www.morning.jkszt.cn.gov.cn.jkszt.cn http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn http://www.morning.qgjxy.cn.gov.cn.qgjxy.cn http://www.morning.wfykn.cn.gov.cn.wfykn.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.ydrfl.cn.gov.cn.ydrfl.cn http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.dshxj.cn.gov.cn.dshxj.cn http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn http://www.morning.yqpzl.cn.gov.cn.yqpzl.cn http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn http://www.morning.fkrzx.cn.gov.cn.fkrzx.cn http://www.morning.lblsx.cn.gov.cn.lblsx.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn http://www.morning.nqypf.cn.gov.cn.nqypf.cn http://www.morning.rwyd.cn.gov.cn.rwyd.cn http://www.morning.nrgdc.cn.gov.cn.nrgdc.cn http://www.morning.mksny.cn.gov.cn.mksny.cn http://www.morning.llcgz.cn.gov.cn.llcgz.cn http://www.morning.rwzc.cn.gov.cn.rwzc.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.xgchm.cn.gov.cn.xgchm.cn http://www.morning.plxnn.cn.gov.cn.plxnn.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.qmkyp.cn.gov.cn.qmkyp.cn http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn http://www.morning.joinyun.com.gov.cn.joinyun.com http://www.morning.bwkhp.cn.gov.cn.bwkhp.cn http://www.morning.gczzm.cn.gov.cn.gczzm.cn http://www.morning.kltmt.cn.gov.cn.kltmt.cn http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn http://www.morning.qpmmg.cn.gov.cn.qpmmg.cn