说明:(0)声明:可能本篇博客,自己的理解,存在偏差;但就目前来说,本篇博客的内容,能够帮助自己形成自洽; (主要的一个点是:自己这儿区分开了【枚举数据类型】和【枚举类】究竟合不合适)(1)为什么要介绍枚举类?:在【Spring Boot电商项目14:用户模块三:API统一返回对象;(其中,涉及了【使用枚举类,来管理接口失败时的错误信息】;)】中,遇到了【使用枚举类,来来管理接口失败时的
转载
2024-05-31 13:36:56
44阅读
当我们后端 restful 开发的时候,作为安全开发必须在对一些参数进行校验。在我最开始写代码的时候,把请求参数的校验逻辑写在业务逻辑当中。其实还有更加优雅的方式去进行参数校验,那就是通过 hibernate-validate 通过注册的方式来进行业务校验。1、一个简单的 Demo我们首先通过一个 Spring boot 项目来简单的认识一下如何使用 hibernate-validator 来进行
转载
2023-12-15 10:24:00
108阅读
在SpringMVC 转换时候报如下错误ERROR com.xxxx.common.exception.BaseExceptionHandler:56 - org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'XXXXPO' on field 'state': reject
转载
2024-06-01 09:24:25
404阅读
Last week I was working on the backend of a project(SEF AcadeMiX) which uses JPA and spring boot. There, I had to add translations of the data also into the database. (Actually, we had already created
转载
2024-03-18 17:46:10
135阅读
1/?背景很多大厂都要求了代码里面避免魔法值,如阿里巴巴开发规范 阿里巴巴Java开发手册1.4.0 ,那么使用枚举就是比较好避免的一个办法,比如 性别 0-未知 1-男 2-女【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。 反例:String key = “Id#taobao_” + tradeId; cache.put(key, value);1、Controller参数能
转载
2023-10-10 10:06:40
360阅读
springboot-枚举 目录springboot-枚举前言自定义枚举转换定义枚举表单参数Json参数mybatis 前言在开发中,有时候我们会使用枚举来作为参数和返回值,在springboot中,默认情况枚举类型使用规则如下:对于json参数:数字,则对应定义顺序;字符串:
如果枚举类中没有@JsonValue注解方法,则对应枚举类型的定义名称;如果有,则对应注解方法的返回值;如果没有找
转载
2023-10-24 07:36:40
358阅读
文章目录1. 使用场景2. 技术实现2.1 实现思路2.2 代码实现2.2.1 引入依赖2.2.2 自定义校验注解2.2.3 校验工具类2.2.4 校验处理逻辑3. 使用示例 1. 使用场景某接口的入参某属性,只希望为系统中某枚举的中定义过的值。 例如:用户类型枚举中定义 10-普通用户 20-管理员 30-游客 40-中级用户 50-高级用户 希望某接口的入参 userType 只能填入这几种
转载
2024-03-05 04:31:26
93阅读
该图片由Johnnys_pic在Pixabay上发布你好,我是看山。在优雅的使用枚举参数(原理篇)中我们聊过,Spring对于不同的参数形式,会采用不同的处理类处理参数,这种形式,有些类似于策略模式。将针对不同参数形式的处理逻辑,拆分到不同处理类中,减少耦合和各种if-else逻辑。本文就来扒一扒,RequestBody参数中使用枚举参数的原理。找入口对 Spring 有一定基础的同学一定知道,请
转载
2024-02-21 11:21:31
83阅读
你好,我是看山。SpringBoot 实战:优雅的使用枚举参数 中聊了怎么优雅的使用枚举参数,本文就来扒一扒 Spring 是如何找到对应转换器 Converter 的。找入口对 Spring 有一定基础的同学一定知道,请求入口是DispatcherServlet,所有的请求最终都会落到doDispatch方法中的ha.handle(processedRequest, response, mapp
转载
2024-02-29 17:47:20
62阅读
该图片由Sinousxl在Pixabay上发布你好,我是看山。接口开发过程中不免有表示类型的参数,比如 0 表示未知,1 表示男,2 表示女。通常有两种做法,一种是用数字表示,另一种是使用枚举实现。使用数字表示就是通过契约形式,约定每个数字表示的含义,接口接收到参数,就按照约定对类型进行判断,接口维护成本比较大。在 Spring 体系中,使用枚举表示,是借助 Spring 的 Converter
转载
2024-02-19 13:50:33
615阅读
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! 有时候会把表里的某个字段的值设置为数字或者为英文来表示他的一些特殊含义,就拿设置英文字母来说,假如a对应是学生,b对应是教师,在java里面定义成这样的枚举,但是一般使用mybatis查出来的话,我们想要让它自动装换成我们想要的枚举,这时候在接口返回的时候首先我想到的是自己对
摘要书中就这部分内容设计,提到使用了:策略模式、门面模式、策略工厂模式、享元模式。但可能真正称得上是设计的内容就两个部分,策略模式和策略工厂模式。但是就书中所写的策略工厂,个人认为有些啰嗦,并且指定全类名,通过反射来获取对象,这种实现不够优雅。个人相信的设计理念就是在实现代码可扩展的前提下,尽可能使用少的类,只开放必要的接口。虽然 Spring 获取 Bean 本质上也是通过反射来创建的,效率并没
转载
2024-06-29 20:28:51
196阅读
# 实现Java枚举类参数的步骤
作为一名经验丰富的开发者,我将向刚入行的小白介绍如何实现Java枚举类参数。下面是整个实现过程的流程图:
```mermaid
graph TD
A(开始) --> B(定义枚举类)
B --> C(在枚举类中定义参数)
C --> D(使用枚举类参数)
D --> E(结束)
```
## 步骤详解
### 步骤1:定义枚举类
首先,我们需要定义一个枚
原创
2024-02-13 05:37:54
56阅读
public Object invokeForRequest(NativeWebRequest request, @Nullable ModelAndViewContainer mavContainer,
Object... providedArgs) throws Exception {
Object[] args = getMethodArgumentValues(r
转载
2024-06-20 11:26:40
88阅读
该图片由Christian_Crowd在Pixabay上发布你好,我是看山。前文说到 优雅的使用枚举参数 和 实现原理,本文继续说一下如何在 RequestBody 中优雅使用枚举。本文先上实战,说一下如何实现。在 优雅的使用枚举参数 代码的基础上,我们继续实现。如果想要获取源码,可以关注公号「看山的小屋」,回复 spring 即可。确认需求需求与前文类似,只不过这里需要是在 RequestBod
转载
2024-03-12 22:40:50
151阅读
写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!这个通用枚举太简单了,本想不单独整理一篇博客了,闲着也是闲着,整理下吧,废话不多说,先简单说下通用枚举的使用步骤:t_user表中新增字段sex对于枚举类的处理有两种方式:1): implements IEnum<Integer> 2): @EnumValue(标记数
转载
2023-11-14 11:02:00
132阅读
1、枚举类如下 package com.irobotzz.docs.bms.constants;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.common.auth.constants.IBaseEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
转载
2023-06-03 22:34:20
572阅读
继续深入,能够找到org.springframework.web.method.annotation.RequestParamMethodArgumentResolver#resolveArgument方法,这个方法就是解析参数的逻辑。试想一下,如果是我们自己实现这段逻辑,会怎么做呢?获取输入参数找到目标参数检查是否需要特殊转换逻辑如果需要,进行转换如果不需要,直接返回获取输入参数的逻辑在org.
转载
2024-09-14 23:46:02
54阅读
(一)定义 官方说法:枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。某些类型的对象是有限的几个,这样的例子举不胜举:星期:Monday(星期一)......Sunday(星期天)性别:Man
转载
2024-07-02 07:11:20
21阅读
前端传的字符串自动转换为对应枚举的方式背景在项目中我们通常会使用枚举来接收一些值固定的参数,例如此次项目中我们需要传递一个语言参数,这个参数在系统中有三个值:中文 、英文、和繁体中文,在数据库存的是相对应的Integer值 (别问我为啥还要整个小写,前端规范是小写,后段枚举规范用大写,没发用spring自带的枚举转换器。)@Getter
@RequiredArgsConstructor
publi
转载
2024-06-20 13:50:31
303阅读