简介https://spring.io/projects/spring-data-redis我们知道常用的Redis客户端https://redis.io/clients#java在spring-boot-starter-data-redis项目2.X版本中,默认使用Lettuce作为JavaRedis工具库(之前为Jedis)jedis:采用直连,多个线程操作的话,是不安全的,如果想要避免不安全,使用jedispool连接池它更像BIO。lettuce:采用netty实例可以多个线程中进行共享,不存在线程不安全的情况,可以减少线程数据它更像NIO。在SpringBoot中一般使用RedisT
目录1、写在最前2、接口请求2.1、参数校验2.1.1、业务层校验2.1.2、Validator+BindResult进行校验2.1.3、注解说明2.1.4、实战演练 2.1.3、Validator+自动抛出异常3、业务逻辑:异常处理3.1全局异常处理3.1.1、基本使用3.2、自定义异常4、数据统一响应4.1、SpringBoot默认返回格式4.1.1、字符串4.1.2、实体类4.2、参数说明4.2.1、返回格式4.2.2、CODE状态码 4.2.3、状态码4.2.4、数据5、进阶用法5.1类介绍5.2全局统一返回5.3、全局自定义统一响应体5.4、响应码枚举5.5、全局异常处理器5.6、统
八、生成订单一个是需要生成订单信息一个是需要生成订单项信息。具体的核心代码为/***创建订单的方法*@paramvo*@return*/privateOrderCreateTOcreateOrder(OrderSubmitVOvo){OrderCreateTOcreateTO=newOrderCreateTO();//创建订单OrderEntityorderEntity=buildOrder(vo);createTO.setOrderEntity(orderEntity);//创建OrderItemEntity订单项ListOrderItemEntity>orderItemEntitys=bu
前言:之前的项目都有用到ES,但不是自己搭建和使用,包括ES语法和数据存储结构都不知道,趁着有时间来学习下ES的基本使用,很早就知道ES版本兼容问题有坑,唯有自己踩坑才印象深刻;公司服务器太多人用,动不动就搞出问题,所以我就用本地环境搭建Elasticsearch+Kibana+Spring-boot-starter-data-elasticsearch来集成,这样学习成本是比较低的,SpringBootData已经帮我们集成好了只需开箱即用,后面在优化代码通过自定义注解提供通用ES查询,现在先把代码跑起来。ES版本选择:ES对应Spring版本.png先检查自己SpringBoot版本,我是
SpringBoot从2.4.X开始默认使用JUnit5做单元测试导入依赖dependency>groupId>org.springframework.bootgroupId>artifactId>spring-boot-starter-testartifactId>scope>testscope>dependency>注解说明注解使用位置说明@SpringBootTest标注类启用SpringBoot作为测试核心(可以使用Spring的功能)@Test标注方法表示要测试的方法@DisplayName标注类为此测试类命名@BeforeEach标注方法在每个单元测试之前执行@AfterEach标
一、项目场景:提示:使用版本6.7.0公司使用前后端项目分离,前端使用bpmn插件生成bpmnxml文件,后端解析处理数据。今天主要介绍后端集成flowable设计器的过程中遇到的问题。如需了解flowable框架集成请参考文档FlowableBPMN用户手册(v6.3.0)二、集成过程提示:项目中遇到的问题:为什么需要自己集成Flowable设计器?因为SpringBoot提供的依赖只集成Flowable引擎模块,没有集成modeler模块。SpringBoot集成Flowable需要导入如下依赖:dependency>groupId>org.flowablegroupId>artifact
文章目录一.Spring拦截器1.自定义拦截器2.将自定义拦截器加入到系统配置中3.拦截器实现原理4.统一访问前缀添加二.统一异常的处理三.统一数据返回格式1.实现统一数据返回格式的功能2.特殊情况,返回String类型在上一篇博客中介绍了SpringAOP的原生操作,此时我们就可以去着手写一个统一处理用户登陆权限验证的功能;我们可以想到使用SpringAOP的前置通知方法或者环绕通知方法来进行实现,但是在真正使用原生SpringAOP对该功能进行实现时,会有如下问题:首先是要验证用户的登陆状态,就要先获取到内存中的Session对象,但是通过前置或者环绕通知的方式是很难拿到请求对象的,也就很
需求:实现在对数据库查询时,同时更新ES服务中指定索引的数据。若用户重建数据库,则需删除旧索引,查询数据库新数据,而后插入指定新索引中。创建索引之前,进行数据操作部分(操作数据过程中同时更新当前索引数据):点击重建索引按钮之后,进行对数据检索部分:第一步,首先了解,安装Elasticsearch,注意各个版本的对应,否则会运行失败elasticsearch:7.16.3spring-boot-starter-parent:2.3.0.RELEASE当运行之后输入http://localhost:9200/如果有返回值则说明安装成功第二步,引用ES(这里运用的RestHighLevelClien
一、业务场景在有些业务场景下,需要SpringBoot来动态加载jar中的class文件,自动往spring容器中添加新的bean;如物联网设备上传的信息用物模型来解析,用java来解析物模型,但用户的设备千差万别,解析设备的物模型不可能包罗万象,设备往物联网平台上传的数据格式也是千差万别,这时就可以让用户自已实现解析物模型的java代码,然后打成jar包,上传到物联网平台,物联网平台就可以解析当前用的设备信息了。二、准备工作1、生成的jar需要布署在nginx当中,直接通过url地址可以下载,所以本次使用要用到nginx,nginx的下载地址,放在本博文最后,可以在后面查看下载在conf文件
背景之前构建过文件预览服务,对于视频部分前端播放组件限制只能为mp4格式,为了支持更多视频格式决定对方案进行升级,由于视频格式较多,针对每一种格式定制选择播放器不太现实,决定对视频源统一转码,转码后的格式为mp4,兼容性稳定且前后端改造工作较小配置maven添加java-all-deps引用,该引用内置不同版本ffmpeg文件,为了避免打包后文件过大,排除不需要的平台兼容支持ws.schildjave-all-deps3.3.1ws.schildjave-nativebin-win32ws.schildjave-nativebin-linux32ws.schildjave-nativebin-