【WEB系列】如何支持下划线驼峰互转的传参与返回

SpringBoot系列之Web如何支持下划线驼峰互转的传参与返回

接下来介绍一个非常现实的应用场景,有些时候后端接口对外定义的传参/返回都是下划线命名风格,但是Java本身是推荐驼峰命名方式的,那么必然就存在一个传参下换线,转换成驼峰的场景;以及在返回时,将驼峰命名的转换成下划线

那么如何支持上面这种应用场景呢?

本文介绍几种常见的手段

查看更多

分享到

【DB系列】Mybatis之批量插入的几种姿势

在日常的业务需求开发过程中,批量插入属于非常常见的case,在mybatis的写法中,一般有下面三种使用姿势

  • 单个插入,业务代码中for循环调用
  • <foreach>标签来拼接批量插入sql
  • 复用会话,拆分小批量插入方式

查看更多

分享到

【DB系列】Mybatis之ResultMap、ResultType返回结果使用姿势

在使用mybatis进行数据库操作时,如果希望将返回结果映射为项目中定义的实体对象Entity时,ResultMap与ResultType就很重要了;它们两的主要区别在于ResultType指定指定实体对象,ResultMap则定义数据库字段与实体的映射关系

接下来通过简单的实例来看一下这两种的使用姿势

查看更多

分享到

【中间件】Prometheus大盘配置实战

借助Grafana来实现大盘配置,关于Grafana的启用配置,这里就不详细说明,有兴趣的可以查看前文 * 【中间件】Prometheus实现应用监控 | 一灰灰Blog

接下来主要是针对上一篇 【中间件】Prometheus基于AOP实现埋点采集上报 上报的Histogram数据,来配置一套相对完整的业务监控大盘

查看更多

分享到

【中间件】Prometheus基于AOP实现埋点采集上报

前面几篇文章介绍了SpringBoot继承Prometheus实现埋点上报,基本上可以非常简单的实现采样收集,对于由SpringBoot搭建的web应用,甚至是可以说是引入依赖,简单的配置下,剩下的啥也不用管,就可以配置一个REST应用的监控大盘

接下来我们通过AOP的方式,来定义一个自定义数据采集的功能,用于实现一些上面覆盖不到的场景(如应用内的定时任务执行情况,三方接口请求监控等)

查看更多

分享到

【中间件】Prometheus自定义埋点姿势二

关于Prometheus的自定义埋点,前一篇博文已经介绍了,为啥这里又来一次?

看过前文的小伙伴可能会知道,之前采用的simpleclient包定义的几个metric来实现的,实际上有更简单方便的姿势,那就是直接借助MeterRegistry来创建Metric来实现数据采集即可

相比较于前文的实现,总的来说简易程度可见一般,上篇文章可以点击下文查看

查看更多

分享到

【基础系列】SpringContext.getBean()方法调用导致NPE?

在实际的业务开发中,为了方便获取Spring容器中的Bean对象,一个常见的case就是创建一个SpringUtil类,内部持有SpringContext上下文,然后提供一个静态的方式获取bean对象,然而这种使用姿势,一个不小心可能导致npe

今天我们来看一下这个场景

查看更多

分享到

【WEB系列】拦截器注入Bean的几种姿势

之前介绍过一篇拦截器的基本使用姿势: 【WEB系列】SpringBoot之拦截器Interceptor使用姿势介绍

在SpringBoot中,通过实现WebMvcConfigureraddInterceptors方法来注册拦截器,那么当我们的拦截器中希望使用Bean时,可以怎么整?

查看更多

分享到

【WEB系列】thymeleaf foreach踩坑记录

话说自从前后端分离之后,前后端放在一起的场景就很少了,最近写个简单的后台,突然踩坑了,使用themeleaf模板渲染时,发现th:each来遍历生成表单数据,一直抛异常,提示Property or field 'xxx' cannot be found on null

接下来看一下这个问题到底是个什么情况

查看更多

分享到

【中间件】Prometheus自定义埋点上报

之前介绍了一篇SpringBoot集成Prometheus实现数据上报的博文,在前面一篇博文中,更多的是一个SpringBoot应用如何最小成本的接入Prometheus,并结合Grafana配置一个完整的应用监控大盘

有看过前文的小伙伴可能知晓,SpringBoot接入Prometheus之后,基本上不用做额外的开发,就已经实现了我们关心的JVM情况、GC情况、HTTP调用请求等信息,然而在实际的业务开发过程中,我们总会遇到一些需要手动上报的场景,那么我们可以怎么处理呢?

本文的核心知识点:

  • 通过一个实例演示SpringBoot应用,如何实现自定义的数据上报

上篇博文: SpringBoot整合Prometheus实现应用监控

查看更多

分享到

【DB系列】Mybatis之ParameterMap、ParameterType传参类型指定使用姿势

在使用Mybatis开发时,借助xml来写具体的sql,再写传参类型或者返回结果类型时,通常会与ParameterType, ParameterMap, ResultMap, ResultType这四个打交到,那么这个Type与Map到底怎么区别,什么时候要指定类型,什么时候又可以不指定呢?

查看更多

分享到

【DB系列】Mybatis之传参类型如何确定

最近有小伙伴在讨论#{}${}的区别时,有提到#{}是用字符串进行替换,就我个人的理解,它的主要作用是占位,最终替换的结果并不一定是字符串方式,比如我们传参类型是整形时,最终拼接的sql,传参讲道理也应该是整形,而不是字符串的方式

接下来我们来看一下,mapper接口中不同的参数类型,最终拼接sql中是如何进行替换的

查看更多

分享到