在 Spring MVC 中设置 JSON Content Type
1、简介 {#1简介} ----------- Content Type 表示请求/响应数据的媒体类型(Media Type)。当 Conroller 收到 Web 请求时,它会根据 Content Type 解析请求数据,然后根据 Content Type 响应数据。目前在 REST 中最流行的 Content Type 就是 JSON。 本文将会带你了解如何在 Spri...
1、简介 {#1简介} ----------- Content Type 表示请求/响应数据的媒体类型(Media Type)。当 Conroller 收到 Web 请求时,它会根据 Content Type 解析请求数据,然后根据 Content Type 响应数据。目前在 REST 中最流行的 Content Type 就是 JSON。 本文将会带你了解如何在 Spri...
1、概览 {#1概览} ----------- 日志是每个应用的重要组成部分。在应用中,可以将日志存储在文件或数据库中。除此以外,还可以将日志数据发送到集中式日志管理应用,如 **Graylog** 或 **Syslog**。 ![应用中的日志系统架构](/upload/2023/11/12/zbJZKwS7ME.webp) 本文将带你了解如何在 [Spring Boot...
1、概览 {#1概览} ----------- 本年将带你了解原生镜像(Native Image)的相关知识,以及如何使用 [Spring Boot](/spring-boot/) 和 GraalVM 构建原生镜像应用。 本文使用的是 Spring Boot 3,但是在末尾会教你如何解决与 Spring Boot 2 的差异问题。 2、原生镜像 {#2原生镜像} ----...
1、概览 {#1概览} ----------- 本文将带你了解如何在 YAML 中定义列表,以及如何在 Spring Boot 中把 YAML 列表映射为 Java `List` 对象。 2、回顾一下 YAML 中的列表 {#2回顾一下-yaml-中的列表} ----------------------------------- 简而言之,[YAML](https://y...
1、概览 {#1概览} ----------- 在接下来的一系列文章中,我将带你了解一种用于 REST API 的简单查询语言。 为什么要使用查询语言(Query Language)?因为对于任何足够复杂的 API 来说,仅仅通过简单的字段来搜索/过滤资源是远远不够的。查询语言更加灵活,可以准确过滤选出所需的资源。 2、User 实体 {#2user-实体} ------...
1、概览 {#1概览} ----------- 本文将带你了解 Spring Cloud Sleuth,以及如何在 Spring Boot 中使用它进行链路追踪。 它可以在日志中添加额外有用的信息,并通过唯一链路 ID 帮助 Debug。这些操作在 Sleuth 术语中称为追踪(**Trace** )。它们可以由多个步骤组成,称为 **Span**。 例如,链路追踪可以是...
1、简介 {#1简介} ----------- 随着微服务架构越来越流行,在不同服务器上运行多个服务变得越来越普遍。本文将带你了解如何使用 [Spring Cloud Load Balancer(负载均衡器)](https://spring.io/guides/gs/spring-cloud-loadbalancer) 创建容错性更强的应用。 2、负载均衡是什么? {#2负...
1、概览 {#1概览} ----------- 跨站脚本攻击(Cross-Site Scripting,XSS)一直稳居最常见的 [十大网络攻击](https://owasp.org/www-project-top-ten/) 之列。XSS 攻击发生在 Web 服务器处理用户恶意输入时,未经验证或编码即在页面上渲染。与 XSS 攻击类似,代码注入和点击劫持通过窃取用户数据和冒...
前言 {#前言} -------- 现在的 Web 应用大都是读多写少。除了缓存以外还可以通过数据库 "主从复制" 架构,把读请求路由到从数据库节点上,实现读写分离,从而大大提高应用的吞吐量。 通常,我们在 [Spring Boot](/spring-boot/) 中只会用到一个数据源,即通过 `spring.datasource` 进行配置。前文 《[...
1、简介 {#1简介} ----------- 本文将带你了解如何通过调整 Spring 应用的配置、JVM 参数和使用 GraalVM 原生镜像来缩短 Spring Boot 的启动时间。 2、调整 Spring 应用 {#2调整-spring-应用} ------------------------------- 首先,创建一个 Spring Boot(2.5.4)应...