简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验。接下来,我们以spring-boot项目为例,介绍Spring Validation的使用。 引入依赖 如果spring-boot版本小于2.3.x,spring…

2022-12-30 0条评论 74点热度 0人点赞 admin 阅读全文

我们平时开发项目的时候,经常会需要远程调用下其他服务提供的接口,于是我们会使用一些HTTP工具类比如Hutool提供的HttpUtil。前不久SpringBoot 3.0发布了,出了一个Http Interface的新特性,它允许我们使用声明式服务调用的方式来调用远程接口,今天我们就来聊聊它的使用! 简介 Http Interface让你可以像定义Java接口那样定义HTTP服务,而且用法和你平时写Controller中方法完全一致。它会为这些HTTP服务接口自动生成代理实现类,底层是基于Webflux的WebCl…

2022-12-27 0条评论 76点热度 0人点赞 admin 阅读全文

发布订阅模式简介 发布订阅模式在我们日常的开发工作中算是比较常用的一种方式,发布订阅模式有可以被称为观察者模式,它定义的是一种一对多的关系模式,可以让多个订阅者同时监听到同一个发布者的消息,这个发布者又被称为是主题对象。然后通过发布者发布的消息,来通知观察者能够实时的更新自己获取到的消息内容。 有人说发布订阅模式与观察者模式是有区别的,这里我们先不对两者做展开的讨论,在后面我们会介绍相关的内容。这里我们首先来看发布订阅模式,如下图所示。 如图所示,在发布订阅模式中有两个关键性的节点,发布者与订阅者。我们可以将发布者…

2022-12-21 0条评论 73点热度 0人点赞 admin 阅读全文

1. 前景 在使用Springboot时,通常很多信息都是在application.yml中直接明文配置的,比如数据库链接信息,redis链接信息等等。有些公司的场景可能需要对配置文件进行加密,防止部署操作人员接触数据句的重要信息,所以需要对敏感数据进行加密。 Jasypt这个库为我们解决了这个问题,实现了springboot配置的自定义加密加密。 2. 开源项目介绍 https://github.com/ulisesbocchio/jasypt-spring-boot 2.1 引入依赖 <propertie…

2022-12-09 0条评论 148点热度 0人点赞 admin 阅读全文

Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布。使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题,另外还有可能需要将应用部署到Tomcat下运行。所以,jar包不一定合适适用所有的场景,如war包更合适,你可以尝试转为传统的war包,这样打补丁包可能更方便。 如何配置打war包呢? 以下配置以Maven为说明讲解,Gradle的查看类似配置。 1、修改Spring Boot启动类 启动类继承 SpringBootServletInit…

2022-11-30 0条评论 180点热度 0人点赞 admin 阅读全文

使用 Spring Boot 会涉及到各种各样的配置,如开发、测试、线上就至少 3 套配置信息了。Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发、测试、线上环境使用不同的配置。 在 Spring Boot 里面,可以使用以下几种方式来加载配置。本章内容基于 Spring Boot 2.0 进行详解。 properties文件; YAML文件; 系统环境变量; 命令行参数; 等等…… 配置属性加载的顺序如下: 1、开发者工具 `Devtools` 全局配置参数; 2、单元测试上的 `@TestPr…

2022-11-28 0条评论 126点热度 0人点赞 admin 阅读全文

Profile我也找不出合适的中文来定义,简单来说,Profile就是Spring Boot可以对不同环境或者指令来读取不同的配置文件。 假如有开发、测试、生产三个不同的环境,需要定义三个不同环境下的配置。 基于properties文件类型 你可以另外建立3个环境下的配置文件: applcation.properties application-dev.properties application-test.properties application-prod.properties 然后在applcation.p…

2022-11-26 0条评论 109点热度 0人点赞 admin 阅读全文

首先我们准备好SSL证书,我们的证书一般是通过购买或者免费的例如LetsEncrypt获取到,一般下载下来主要会有这几个文件: 证书文件:some.example.crt 或者 cert.pem 私钥文件:some.example.key 或者 privkey.pem 这里需要将将PEM证书转换为p12以配置进Spring Boot。 先通过下列命令转换证书: sudo openssl pkcs12 -export -in "你的证书文件路径" -inkey "你的私钥文件路径" -out "指定生成的p12证书文…

2022-11-22 0条评论 175点热度 0人点赞 admin 阅读全文

用SpringBoot做API最多的是返回JSON格式的数据,如果有些情况需要返回xml的数据呢? 加入 XML 工具依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </dependency> 不用带版本号,因为在 spring-webmvc 包中已经定义好了,只…

2022-11-20 0条评论 59点热度 0人点赞 admin 阅读全文

前面介绍了 [Java]基于Maven的SpringWeb项目下使用proguard对class进行混淆的配置 SpringBoot下如何配置proguard?SpringBoot下的配置应该还要简单很多。 准备proguard配置文件proguard.cfg(内容都有注释,可以根据自己的实际情况做修改): # 忽略所有警告,否则有警告的时候混淆会停止 -ignorewarnings # JDK目标版本11,或者1.8这类 -target 11 # 不做收缩(删除注释、未被引用代码) -dontshrink # 不…

2022-11-19 0条评论 95点热度 0人点赞 admin 阅读全文
123458