当前位置: 首页 > wzjs >正文

模板式网站佛山木工机械厂骏域网站建设专家

模板式网站,佛山木工机械厂骏域网站建设专家,网站设计行业背景,设计说明100字目录 RESTful API 设计规范Spring MVC 核心注解解析静态资源处理策略JSON 数据交互全解高频问题与最佳实践 一、RESTful API 设计规范 1.1 核心原则 原则说明示例 URI资源为中心URI 使用名词(复数形式)/users ✔️ /getUser ❌HTTP 方法语义化GET&…

目录

  1. RESTful API 设计规范
  2. Spring MVC 核心注解解析
  3. 静态资源处理策略
  4. JSON 数据交互全解
  5. 高频问题与最佳实践

一、RESTful API 设计规范

1.1 核心原则

原则说明示例 URI
资源为中心URI 使用名词(复数形式)/users ✔️ /getUser
HTTP 方法语义化GET(查)、POST(增)、PUT(改)、DELETE(删)DELETE /users/1
无状态通信服务端不保存客户端会话状态每次请求携带完整认证信息

1.2 完整代码示例

@RestController
@RequestMapping("/api/v1/users")
public class UserController {@GetMapping("/{id}")public ResponseEntity<User> getUser(@PathVariable Long id) {User user = userService.findById(id);return user != null ? ResponseEntity.ok(user) : ResponseEntity.notFound().build();}@PostMappingpublic ResponseEntity<User> createUser(@Valid @RequestBody User user) {User savedUser = userService.save(user);URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(savedUser.getId());return ResponseEntity.created(location).body(savedUser);}
}

1.3 高级技巧

  • HATEOAS 实现(响应中嵌入资源链接):
@GetMapping("/{id}/orders")
public CollectionModel<Order> getUserOrders(@PathVariable Long id) {List<Order> orders = orderService.findByUserId(id);Link selfLink = linkTo(methodOn(UserController.class).getUserOrders(id)).withSelfRel();return CollectionModel.of(orders, selfLink);
}
  • 响应示例
{"content": [ ... ],"_links": {"self": { "href": "/users/1/orders" }}
}

二、Spring MVC 核心注解解析

2.1 参数绑定注解

注解作用场景示例代码
@PathVariable从 URI 路径提取变量@GetMapping("/{id}")id=1
@RequestParam绑定查询参数(支持默认值)@RequestParam(name="page", defaultValue="1")
@RequestBody将请求体 JSON 映射到 Java 对象public User createUser(@RequestBody User user)

2.2 元数据获取注解

// 获取 Cookie 值
@GetMapping("/session")
public String getSession(@CookieValue("JSESSIONID") String sessionId) { ... }// 读取请求头
@GetMapping("/headers")
public String getHeader(@RequestHeader("User-Agent") String userAgent) { ... }

2.3 作用域注解

注解作用域生命周期
@SessionAttribute读取 Session 属性用户会话期间有效
@ModelAttribute预加载模型数据每次请求前执行

三、静态资源处理策略

3.1 配置方式对比

方式配置示例适用场景
缺省 Servlet 放行web.xml 配置 <servlet-mapping>传统项目兼容
resources 标签<mvc:resources mapping="/img/**" location="/img/"/>明确指定资源目录
default-servlet-handler<mvc:default-servlet-handler/>快速放行所有静态资源

3.2 常见问题

  • JSP 未被放行:需通过视图解析器处理,不属于静态资源。
  • 路径冲突:避免控制器映射与静态资源路径重叠(如 /js/**/js/controller)。

四、JSON 数据交互全解

4.1 响应 JSON 配置

@RestController // = @Controller + @ResponseBody
public class ApiController {@GetMapping("/city/{id}")public City getCity(@PathVariable int id) {return cityService.findById(id);}
}

4.2 序列化控制

@Data
public class Product {@JsonIgnoreprivate String internalCode; // 不序列化@JsonFormat(pattern = "yyyy-MM-dd")private Date createTime;     // 日期格式化
}

4.3 依赖配置

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.14.0</version>
</dependency>

五、高频问题与最佳实践

5.1 常见错误

  1. RESTful 路径设计混乱
    • /getUserOrders?userId=1 → ✅ GET /users/1/orders
  2. HTTP 方法误用
    • ❌ 用 POST 请求更新资源 → ✅ 使用 PUT/PATCH
  3. JSON 日期序列化错误
    • 解决方案:@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")

5.2 性能优化

  • 静态资源缓存:配置 Cache-Control 头减少重复请求。
  • Jackson 延迟加载:对大数据集使用 @JsonView 控制序列化字段。
http://www.dtcms.com/wzjs/809304.html

相关文章:

  • 旅游类网站建设的结论公司网站招聘费如何做会计分录
  • 网站新闻不添加关键词超链接对优化有影响吗外贸机械网站
  • 做毕业设计网站的步骤自助网站制作系统源码
  • wordpress文章段落背景颜色代码网站页面seo
  • 山亭网站建设网页网站制作培训班
  • 网站建设人员性格那个网站是响应式的
  • 中文wordpress网站模板下载永久免费ppt下载网站
  • 惠州营销网站建设公司网红营销策划方案
  • 江苏建设网站首页上海it公司
  • 网站建设 软件开发的公司排名wordpress会员中心模板下载
  • 外贸公司英文网站建设网站的建设与管理暂行办法
  • 网站建设报告家教总结南阳卧龙区高端网站建设价格
  • asp.net做的网站模板下载自己做交易网站吗
  • 网站建设需求调研过程百度网站源码优化检测
  • 从零做网站模板网易企业邮箱和个人邮箱的区别
  • 青海旅游网站建设方案评价模板
  • 校园互动网站建设刚察网站建设公司
  • 京东网站建设思维导图seo是啥
  • 焦作整站优化龙岗个性化网站建设价格低
  • 邯郸国外网站建设费用百度做商务网站多少钱
  • 国外网站打开很慢dns大连网站建设酷网科技
  • 选择佛山网站设计网页设计素材表格
  • 建站前端模板wordpress主题下载弹窗
  • 马拉松网站建设泰兴网站建设价格
  • 网站建设的作用是什么怎么在云服务器上搭建网站
  • 替老外做网站光明区公明街道
  • 网站聊天室怎样做炫彩马甲营销网站的建设流程
  • 四合一网站建设se 网站优化
  • 保定网站建设制作做网站怎么弄模板
  • c2c网站是什么cn域名的网站