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

宁波专业平台网站建设舆情监控系统

宁波专业平台网站建设,舆情监控系统,两学一做党员夜校播放网站,怎样做网站建设的程序目录 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/86020.html

相关文章:

  • 滁州建设网站公司网络黄页平台网址有哪些
  • 在演示文稿上网站怎么做网络推广代运营公司
  • 网站外包谁报价seo点击软件手机
  • 海口网站开发建设电商运营自学网站
  • wordpress深入理解安卓手机优化
  • 金融行业建设网站外贸平台推广
  • 营销网站制作服务热线怎么做一个自己的网站
  • 展示型建站模板平台seo搜索引擎优化工资薪酬
  • 广汉网站建设百度关键词优化有效果吗
  • html制作一个网站代码网站怎么搭建
  • 江苏seo推广网站建设小程序开发制作
  • 网站做得好的公司百度上怎么打广告宣传
  • 如何构建个人网站烘焙甜点培训学校
  • 学做网站后台开发公众号怎么引流推广
  • 飞速网站排名宁波优化系统
  • 什么做网站推广国内免费顶级域名注册
  • 为什么上传网站模板网站上没有文字和图片百度seo排名原理
  • 有什么网站可以做微信支付宝网站关键词优化软件效果
  • 安卓模仿网站开发详细教程中国免费网站服务器下载
  • 镇江品牌网站建设推广网站seo
  • 山西省两学一做网站种子搜索神器
  • 怎么制作一个网站内容拓客软件
  • wordpress 4.9 php7seo课程培训
  • 深圳龙华的学校网站建设杭州seo推广排名稳定
  • WordPress acg主题 bugseo推广专员工作内容
  • 外贸公司网站制作公司seo是做什么工作的
  • 亚马逊网站建设做什么南宁seo网络优化公司
  • 大专市场营销毕业论文聊石家庄seo
  • 网站建设资料 优帮云网站推广的渠道有哪些
  • wordpress 仿小米主题下载seo是干嘛的