在我们普通的应用中,如果我们要定制一个类对象的Json输出的话,我们可以轻松的通过Jackson提供的注解如:“@JsonProperties”等注解在类上轻松实现对Json输出的定制。 但也存在着这样的Java类对象的源码不受控制的情况: 1、Java类在第三方的类库中,你无法修改; 2、不想修改已有的类的代码,因当前业务和已有业务在不同的模块中。 Jackson为我们mixin来解决这个问题,在不修改已有的Java类库的情况下,定制Json的输出。Spring Boot 2.7为我们提供了“@JsonMixin…

2022-10-23 0条评论 45点热度 0人点赞 admin 阅读全文

相信很多小伙伴写程序有自己的一套工具类,或者遇到一个功能,会去网上找一些工具类,难免还会引入很多第三方类库,一个是增加了类库之间冲突的风险,另外是增大了整个包的体积。 我们现在很多时候开发框架选择的是SpringBoot,起始SpringBoot自带了很多使用的工具类,下面介绍下: 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 /…

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

之前写过文章记录怎么在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。 经过网上搜索学习后,特此记录如何在SpringBoot项目中实现动态定时任务。 因为只是一个demo,所以只引入了需要的依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifac…

2022-10-10 0条评论 66点热度 0人点赞 admin 阅读全文

在Spring Boot中,在读取yml或者properties的配置文件值,如果使用@Value注解对属性进行赋值,但如果在配置文件或启动参数中未指定对应的参数值,则会抛出异常。异常信息往往是对应注入属性的类实例化失败。 我们希望如果配置文件没有设置,能读到一个默认值,不会导致程序出错。 此时,需要对@Value对应的值进行配置,或设置默认值。设置方法如下: @RestController public class ConfigController { // ①未指定默认值 @Value("${user.user…

2022-10-08 0条评论 55点热度 0人点赞 admin 阅读全文

在开发中有时候经常需要一些Http请求,请求数据,下载内容,也有一些简单的分布式应用直接使用Http请求作为跨应用的交互协议。 在Java中有不同的Http请求方式,主要就是HttpURLConnection或者ApacheHttpClient,另外还有比较注明的OKHttp,或者国内常用的Hutool; Spring也内置了RestTemplate作为Http请求的工具类,简化了很多操作,虽然Spring5推出了WebClient,但是整体感觉还是RestTemplate用起来更简单方便一些。 这里记录分享下Re…

2022-10-02 0条评论 71点热度 0人点赞 admin 阅读全文

在 Spring Boot 框架中,我们使用最多的是Tomcat,这是 Spring Boot 默认的容器技术,而且是内嵌式的 Tomcat。Tomcat 是 Apache 基金下的一个轻量级的Servlet 容 器 , 支 持 Servlet 和 JSP 。Tomcat服务器本身具有Web服务器的功能,可以作为独立的Web服务器来使用。 一、Spring Boot应用中Tomcat建议配置 Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。要了解具体参数的默认值…

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

流程引擎,也算是一个比较常见的工具了,我们在日常的很多开发中都会用到,当然用的最多的就是 OA 系统了,但是在一些非 OA 系统中,我们也会涉及到,比如一个 CRM 中,可能会有合同管理的需求,合同的审批,也是需要流程引擎的。 所以今天我们来简单聊聊流程引擎,顺便写一个简单的例子,小伙伴们一起来感受下流程引擎到底是个啥。 1、流程引擎介绍 Flowable 是一个使用 Java 编写的轻量级业务流程引擎。Flowable 流程引擎可用于部署 BPMN2.0 流程定义(用于定义流程的行业 XML 标准),创建这些流程…

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

今天分享一个非常不错且开源的分布式存储组件MinIO,有多人朋友在用 什么是MinIO? Minio 是个基于 Golang 编写的开源对象存储套件,基于Apache License v2.0开源协议,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口。可以很简单的和其他应用结合使用,例如 NodeJS、Redis、MySQL等。 1. 应用场景 MinIO 的应用场景除了可以作为私有云的对象存储服务来使用,也可以作为云对象存储的网关层,无缝对接 Amazon S3 或者 MicroSoft Azure …

2022-08-29 0条评论 102点热度 0人点赞 admin 阅读全文

在使用Spring/SpringBoot做文件服务(对外提供文件流下载等)的时候,如果是音频视频,最好是提供断点续传功能,这样能可以支持客户端软件的断点续传功能,或者更好的音视频播放的播放、拖动等功能。 实现方法1 新版本的Spring或者SpringBoot是直接支持的,示例如下: // 也可以是video/* 或者下载文件application/octet-stream @GetMapping(value = "/audio/some.mp3", produces = "audio/*") public Res…

2022-08-25 0条评论 124点热度 0人点赞 admin 阅读全文

MyBatis的PageHelper是非常好用的分页插件,本人用下来比MyBatisPlus的更加灵活,例如可以指定offset limit的方式进行分页等等。 如果是Spring下配置PageHelper需要配置拦截器(而且是xml的方式),详见:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md,SpringBoot下有更简单的方式,有专门的boot-starter,只需要引入一个pom依赖,就全部可…

2022-08-08 0条评论 90点热度 0人点赞 admin 阅读全文
123457