Spring Boot教程(12) – 编写JSON API

目前很多公司开发项目,都选择了前后端分离的方式,不仅仅因为前端现在有丰富的生态和活跃的社区,更是因为分离让前端和后端的耦合度大大降低。前后端开发人员各司其职,各自做擅长的事情,提高了团队效率。而现在在电脑前学Spring Boot的你,很可能在将来的工作中扮演后端API开发的角色。

前端和后端的数据交换格式,现在用的最广泛的是JSON,Spring Boot的Web Starter也自带了JSON的支持,而且选用了Jackson库,我之前也写过它如何使用,阅读本文之前最好看一看。另外,还有个JSON库叫Gson,使用也比较广泛,加入了Gson的依赖之后,可以通过配置将其作为默认的JSON库。

对于前后端一体的应用,请求处理处理方法会返回模板的名字用来生成页面。而写接口的话,就需要在方法上添加@ResponseBody注解。你返回一个字符串,请求接口就会得到一个字符串。

(更多…)

继续阅读 →

使用Jackson生成和解析JSON

Jackson是目前使用非常广泛的JSON生成和解析工具。

Jackson项目主要由三个模块儿组成:

  • jackson-core 提供了一套流式API,他不仅自带了JSON的解析器和生成器,还支持扩展数据格式,比如XMLCSVProtobuf
  • jackson-annotations 提供了处理数据时需要的注解
  • jackson-databind 可以将数据和Java对象进行绑定,使用起来更方便、更符合直觉

通常来说,我们提到Jackson的时候,指的就是jackson-databind,他直接依赖了jackson-core和jackson-annotations。我们用Jackson的时候,通常也只是用来处理JSON,其他数据格式可以参考官网进行扩展。

(更多…)

继续阅读 →

Actuator不支持Gson?

Spring Boot提供了Actuator,用来监控和管理运行中的系统,添加一句依赖之后,就可以在/actuator/health和/actuator/info下查看信息了。

Gson是谷歌提供的一个json类库,作为一个Android开发,自然是选择用他。Spring Boot是支持Gson的,只需要在build.gradle添加一句依赖,在application.properties添加一句配置就可以用了。

然而,他俩同时用会出问题。Actuator为了安全,默认的暴露出来的路径很少,只有上面说到的两个,其实有用的信息还有很多,可以通过配置将所有的路径都打开。当我想通过/actuator/beans查看所有的bean的时候,报错了,提示缺少type adapter。

(更多…)

继续阅读 →