首页 > 其他分享 >Spring Boot经验

Spring Boot经验

时间:2023-04-28 17:46:12浏览次数:36  
标签:经验 Spring Boot 校验 groups validation class

Spring、 Spring Boot经验

本文记录作者在实际使用Spring或则Spring Boot过程中遇到比较好的案例或则经验,以供开发学习使用

1. 校验篇

生产过程中前后端都会进行数据格式的校验,后端校验一般采用JSR303的校验模式

1.1 使用

引入依赖

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

1.2 简单校验

在相关实体类上增加校验注解

/**
 * 品牌id
 */
@NotNull(message = "修改必须指定品牌id", groups = {UpdateGroup.class})
@Null(message = "新增不能指定id", groups = {AddGroup.class})
@TableId
private Long brandId;

然后在实际需要校验的地方增加@Valid注解

public R update(@Validated(value = {UpdateGroup.class}) @RequestBody BrandEntity brand);

1.3 分组校验

@Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Validated {

	/**
	 * Specify one or more validation groups to apply to the validation step
	 * kicked off by this annotation.
	 * <p>JSR-303 defines validation groups as custom annotations which an application declares
	 * for the sole purpose of using them as type-safe group arguments, as implemented in
	 * {@link org.springframework.validation.beanvalidation.SpringValidatorAdapter}.
	 * <p>Other {@link org.springframework.validation.SmartValidator} implementations may
	 * support class arguments in other ways as well.
	 */
	Class<?>[] value() default {};

}

在@Valid注解源码中可以看到value是个class的数组,可以进行分组作用
上文中有相关例子,在校验时如果使用分组校验,其他不匹配的分组校验或则不分组的校验将不生效。

自定义组

public interface UpdateGroup {
}

1.4 自定义异常

默认异常可以通过源码查看,也可以指定message
默认的返回值不一定符合系统设计时的结构,可以自定义全局异常来进行设置。

标签:经验,Spring,Boot,校验,groups,validation,class
From: https://www.cnblogs.com/cxpress/p/17362806.html

相关文章

  • Spring Boot 和 Docker 实现微服务部署
    Springboot开发轻巧的微服务提供了便利,Docker的发展又极大的方便了微服务的部署。这篇文章介绍一下如果借助maven来快速的生成微服务的镜像以及快速启动服务。其实将SpringBoot项目用Docker部署也不是什么多么神秘的技术,也要先生成镜像,再用镜像启动容器,如果说有什么方便......
  • Spring Cloud 系列之 Eureka 实现服务注册与发现
    如果你对SpringCloud体系还不是很了解,可以先读一下SpringCloud都有哪些模块Eureka是Netflix开源的服务注册发现组件,服务发现可以说是微服务架构的核心功能了,微服务部署之后,一定要有服务注册和发现的能力,Eureka就是担任这个角色的。如果你用过dubbo的话,那一定知道dubbo......
  • Spring 实现自定义 bean 的扩展
    Springmvc提供了扩展xml的机制,用来编写自定义的xmlbean,例如dubbo框架,就利用这个机制实现了好多的dubbobean,比如 <dubbo:application>、<dubbo:registry> 等等,只要安装这个标准的扩展方式实现配置即可。扩展自定义bean的意义何在假设我们要使用一个开源框架或者一套......
  • 你一直在用的 Spring Boot Starters 究竟是怎么回事
    SpringBoot对比SpringMVC最大的优点就是使用简单,约定大于配置。不会像之前用SpringMVC的时候,时不时被xml配置文件搞的晕头转向,冷不防还因为xml配置上的一点疏忽,导致整个项目莫名其妙的不可用,顿感生活无所依恋,简称生无可恋。这要归功于组成了SpringBoot的各种各样的......
  • Spring AOP 和 动态代理技术
     AOP是什么东西首先来说AOP并不是Spring框架的核心技术之一,AOP全称AspectOrientProgramming,即面向切面的编程。其要解决的问题就是在不改变源代码的情况下,实现对逻辑功能的修改。常用的场景包括记录日志、异常处理、性能监控、安全控制(例如拦截器)等,总结起来就是,凡是想对......
  • 做BI财务数据分析,国产BI软件经验更足
    不管是为了提高销售额,还是为了提高库存周转、疏通现金流,都离不开数据分析,特别是BI大数据分析可视化。因此这几年来BI软件在各行各业的接受度迅速提升,特别是在财务数据分析方面,国产BI软件更是经验、技术到位。要说做中国企业的BI财务数据分析,国产BI软件的经验比谁都足。1、国产BI软......
  • vscode下搭建springboot
    安装两个扩展JavaExtensionforPackSpringBootExtensionPack配置mavenctrl+,搜索java.configuration.maven输入setting.xml的路径注意路径不能有中文或者空格创建springboot项目ctrl+shift+p创建项目,输入springbootInitializer即可。参考博客vscode配置ma......
  • jeecgboot的jar分离打包部署
    因为jeecgboot单体应用打包的jar包太大了,得200M左右,每次更新后上传云服务器有点费劲,所以看了官网有分离打包部署的方法,但是按照官网的步骤啊,发现会出现问题,我现在把我最后成功的配置写下来,我的版本是jeecg-boot-2.4.6,如果其他版本就只能参考下了。主要是修改jeecg-boot-m......
  • Spring源码分析之BeanFactory
    概述以XmlBeanFactory为例分析Xml描述的Bean被Reasource加载到内存,先解析为Document对象,再解析为BeanDefinition注册到BeanDefinitionRegistry,再通过BeanFactory创建名词解释Resource是Spring对资源的抽象,主要是用来读取文件输入流Document是java本身的API进行解析的,得到......
  • Spring XML配置的12个技巧
    Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。Spring利用依赖注入可以获得简单而有效的测试能力。Springbeans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进......