实现一个web接口返回json数据,基本上是每一个javaer非常熟悉的事情了;那么问题来了,如果我有一个接口,除了希望返回json格式的数据之外,若也希望可以返回xml格式数据可行么?
答案当然是可行的,接下来我们将介绍一下,一个接口的返回数据类型,可以怎么处理
实现一个web接口返回json数据,基本上是每一个javaer非常熟悉的事情了;那么问题来了,如果我有一个接口,除了希望返回json格式的数据之外,若也希望可以返回xml格式数据可行么?
答案当然是可行的,接下来我们将介绍一下,一个接口的返回数据类型,可以怎么处理
最近在准备使用微信公众号来做个人站点的登录,发现微信的回调协议居然是xml格式的,之前使用json传输的较多,结果发现换成xml之后,好像并没有想象中的那么顺利,比如回传的数据始终拿不到,返回的数据对方不认等
接下来我们来实际看一下,一个传参和返回都是xml的SpringBoot应用,究竟是怎样的
SpringBoot系列之基于maven多环境配置
实际开发过程中,配置的多环境区分属于标配了,当我们不考虑配置中心时,将多环境的配置就放在项目的resource目录下,那么可以怎样做多环境的配置管理呢?
之前介绍过一篇基于 spring.profiles.active
配置来选择对应的配置文件的方式,有了解这个配置的小伙伴可以很快找到这种方式的特点
如配置值为dev,则加载 application-dev.yml
配置文件,如果为prod,则加载application-prod.yml
那么缺点就很明显了,当我每个环境的配置很多时,上面这种方式真的好用么?
接下来本文介绍另外一种常见的基于maven的多环境配置方式
现在SpringBoot应用大多是内嵌tomcat,以jar包方式启动对外提供服务,最近遇到一个有意思的问题,当我希望输出tomcat的 access.log
时,添加上对应的配置之后,发现windowns系统下找不到这个日志文件,而linux/mac则没有什么问题;
所以花了些时间定位一下,本文将记录定位这个日志文件生成的全过程,当发现最后的结论时,更让我吃惊的事情来了,就这么个问题,在三年前我也遇到过,只不过当时的问题是上传文件之后,提示临时目录不存在,而这个临时目录和本文定位的目录居然是一回事,可谓是来了一次梦幻的联动,前面踩的坑不探究到底,后面迟早会继续掉坑😂
SpringBoot系列之从0到1实现自定义web参数映射器
在使用SpringMVC进行开发时,接收请求参数属于基本功,当我们希望将传参与项目中的对象关联起来时,最常见的做法是默认的case(即传参name与我们定义的name保持一致),当存在不一致,需要手动指定时,通常是借助注解@RequestParam
来实现,但是不知道各位小伙伴是否有发现,它的使用是有缺陷的
@RequestParam
不支持配置在类的属性上如果我们定义一个VO对象来接收传承,这个注解用不了,如当我们定义一个Java bean(pojo)来接收参数时,若是get请求,post表单请求时,这个时候要求传参name与pojo的属性名完全匹配,如果我们有别名的需求场景,怎么整?
最简单的如传参为: user_id=110&user_name=一灰灰
而接收参数的POJO为
1 | public class ViewDo { |
SpringBoot系列之Web如何支持下划线驼峰互转的传参与返回
接下来介绍一个非常现实的应用场景,有些时候后端接口对外定义的传参/返回都是下划线命名风格,但是Java本身是推荐驼峰命名方式的,那么必然就存在一个传参下换线,转换成驼峰的场景;以及在返回时,将驼峰命名的转换成下划线
那么如何支持上面这种应用场景呢?
本文介绍几种常见的手段
在日常的业务需求开发过程中,批量插入属于非常常见的case,在mybatis的写法中,一般有下面三种使用姿势
<foreach>
标签来拼接批量插入sql在使用mybatis进行数据库操作时,如果希望将返回结果映射为项目中定义的实体对象Entity时,ResultMap与ResultType就很重要了;它们两的主要区别在于ResultType指定指定实体对象,ResultMap则定义数据库字段与实体的映射关系
接下来通过简单的实例来看一下这两种的使用姿势
借助Grafana来实现大盘配置,关于Grafana的启用配置,这里就不详细说明,有兴趣的可以查看前文 * 【中间件】Prometheus实现应用监控 | 一灰灰Blog
接下来主要是针对上一篇 【中间件】Prometheus基于AOP实现埋点采集上报 上报的Histogram数据,来配置一套相对完整的业务监控大盘