自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

淋雨一直走啊

你可以接受失败,但是你不可以接受不去尝试。

  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 RestTemplate上传、下载文件

上传文件分两种:①要处理的文件本身存在当前文件系统下②要处理的文件只是个临时文件,或者说是文件流的形式存在。

2023-09-21 00:07:59 2586

原创 解决Docker镜像缺少字体的问题

最近在使用`spire.office.free`这个工具将Excel转换成Html时,后台总是报`Cannot found font installed on the system.宋体`这个错误,本地调试的好好的,docker运行总是报错

2022-08-04 17:52:20 6467 1

原创 达梦JAVA程序指定访问模式(模式名含有特殊字符的处理)

达梦数据库一个用户下存在多个模式,JAVA 程序访问登录的数据库用户下非默认模式下的对象时,不在 SQL 中添加”模式名.对象名”的方式来访问数据的方法

2022-06-23 09:59:29 6307 2

转载 SpringBoot从Redis中取出缓存的对象,但却出现同一类型对象无法转换为同一类型的对象问题java.lang.ClassCastException:

问题: 从Redis中取出的缓存对象,出现同一类型转换错误 最近在写Springboot项目,用到Redis缓存对象User,通过key取出来后的value并赋值给同一类型的对象,但是却出现了一个神奇的报错,同一对象无法转换为同一对象的报错,这个问题我还是第一次见,刚开始真的百思不得其解 java.lang.ClassCastException: com.blog.bean.User cannot be cast to com.blog.bean.User 解决: 开始试着找错误,在test上看能

2022-02-17 09:45:15 1379

原创 记一次在线展示excel时出现合并单元格的问题

最近项目中遇到一个需要解析Excel并在线展示的功能,excel的内容不是固定的,是需要事先通过专用的工具生成xml模板导入到系统中,然后系统解析上报的excel文件时就可以根据模板来解析内容。其中生成的xml模板保存了针对每一个单元格的一些属性,所以excel解析不是难事,关键是页面展示excel内容的时候有个合并单元格的需求,这个着实让我苦恼了几天,上下班的路上都在思考这个问题,后来终于想到一种方案,这里记录一下。因为excel内容不是固定的,所以解析与展示数据时,我都是以单元格为单位的,所以这里我

2021-12-07 17:53:59 510 1

原创 SpringBoot去除字符串类型参数的前后空格

在实际的开发过程中,经常会使用String类型的参数,而用户提交给后端的字符串可以说五花八门,""," “,” 123456","123456 “,”  123456 "等等。如果不对这些空格进行处理,不仅会浪费存储空间,还会引起一些不必要的麻烦。接收String类型的参数通常两种方式:①.使用url或者form表单的形式对于这种情况,我们在参数绑定时注册下面的类即可:@RestControllerAdvicepublic class GlobalHandler { private st

2021-09-07 22:42:10 7497 3

原创 SpringBoot下载jar包中的文件

当打成jar包后,如果想读取jar包内的文件,不能采用普通的文件路径的方式,因为在磁盘上是没有真实路径的,这样会报找不到文件的错误,正确的方式是采用流的方式,以下是经过验证的方式:response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);response.setHeader("Content-disposition", "attachment; filename=logo.png;filename*=utf-8''logo.png

2021-08-29 23:41:51 544

转载 Windows10修改Docker镜像存储目录

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608205106723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhY2tidWc=,size_16,color_FFFFFF,t_70#pic_center)1. 背景需求Windows版本(Windows 10 wsl 2)docker 默.

2021-06-08 21:10:55 1565

原创 SonarQube使用手册

一、简介SonarQube是一种自动代码审查工具,可检测代码中的错误,漏洞和不优雅的地方。我们知道alibaba/p3c也是一款优秀的代码规范检查工具,但是其更倾向于开发人员编程时进行实时规范检查,SonarQube则更方便于开发团队进行整体代码审查,规范管理。二、安装SonarQube服务1.下载安装包SonarQube官方下载页面https://www.sonarqube.org/downloads/,这里我们下载免费的社区版:(经过验证,SonarQube 7.9开始需要Java 11且不

2021-03-18 15:35:16 22884 3

转载 Spring Boot 解决跨域问题的 3 种方案

前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。问题背景:Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准,其目的在于防止某个文档或者脚本从多个不同“origin”(源)装载。它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。

2021-01-08 13:51:35 120

原创 Maven打不同环境的包(排除了不需要的配置文件)

简介:在开发中我们经常会根据不同的发布环境建立对应的配置文件,然后在打包的时候指定哪个文件生效。但是通常的做法是在application.yml中通过spring.profiles.active指定哪个文件激活,但是这样会把所有相关的配置文件都打入最后的部署包中,如果遇到非常保密的情况就很不合适了。这里我们会只将激活的文件打入包内,不相关的不会放入最后的部署包内。操作:<1> 建立对应的配置目录这里先看一下我们的目录结构:这里我在src/main/resources目录下建立了fil

2020-08-13 17:09:57 1791 2

原创 SpringBoot中@ControllerAdvice结合@InitBinder、@ModelAttribute、@ExceptionHandler的使用

简介@ControllerAdvice 就是 @Controller 的增强版。主要用来处理全局数据,一般搭配 @InitBinder、@ModelAttribute、@ExceptionHandler 使用。在@ControllerAdvice注解类的内部使用以上三个注解的方法会应用到所有的@RequestMapping注解的方法。注:如果这三个注解直接在@Controller类中使用,...

2020-04-05 00:06:59 1979

原创 SpringBoot使用Jackson序列化时将null转成空字符串

简介大家知道很多情况下,我们的API中数据交换都用JSON数据,这种数据格式简单、易读写、且轻量。在SpringBoot中默认使用jackson帮助我们进行序列化与反序列化的操作。在控制层将我们的对象序列化返回给前端时,有些字段为null,序列化后的值也是null,如果前端直接展示的话,对用户不够友好,这里我们可以对jackson稍加修改,将值为null的转换成空字符串""。使用只要在配置...

2020-04-04 20:37:55 9195

转载 Java 中几种获取文件路径的方式

1. 前言Java 开发中我们经常要获取文件的路径,比如读取配置文件等等。今天我们就关于文件的路径和如何读取文件简单地探讨一下。2. 文件的路径文件的路径通常有 相对路径 与 绝对路径。2.1 相对路径以当前文件为基准进行一级级目录指向被引用的资源文件。在 Java 代码中以当前运行的代码所在的位...

2020-02-28 10:10:03 2732

原创 SpringBoot集成WebSocket实现消息推送

简介​ 目前对于服务端向客户端推送数据,常用技术方案有轮询、websocket等。轮询的方式比较简单,而且获取的数据不是完全实时的,这里就不介绍了。websocket特点:WebSocket 是一种双向通信协议,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据;WebSocket 需要类似 TCP 的客户端和服务器端通过握手连接...

2020-01-08 15:58:58 1673 1

原创 jeDate实现日期联动

开发中常有这样一种需求,有两个日期选择框,比如一个开航时间,一个回港时间,如下图所示:我们知道,回港时间肯定是在开航时间后面的,也就是说,当用户选择了某一个开航时间后,回港时间能选择的最小值应该大于或等于开航时间;又或者用户选择了某一个回港时间后,开航时间能选择的最大值应该小于或者等于回港时间。即实现两个日期控件的联动。本篇文章采用jeDate日期控件,来实现两个日期控件间的联动。jeDa...

2019-12-11 22:47:19 621

原创 window下使用ssh以及配置免密登录

因为最近的项目需要部署到多台服务器上,如果一台一台的去操作的话,显然太费时费力了,由于公司又没有一整套完整的发布部署平台,所以我就自己写了个批处理脚本来实现项目的部署以及日志的拉取,这其中遇到过不少问题,所以就整理了两篇博客记录一下。我们知道在管理服务器的时候,Linux/Mac系统下,使用ssh服务非常方便,然而生活中还有很多windows平台的服务器,如果也想使用的话,需要一些配置了。网上有...

2019-12-09 16:18:17 3360 4

原创 JSR 303 - Bean Validation的使用(数据校验)

目录使用1. 引入依赖2. 使用方式2.1 使用 @Valid + BindingResult 的方式①.首先创建我们的数据Bean②.在Controller中使用校验2.2 使用 @Valid + 全局异常捕捉处理①.Controller中②.编写全局异常处理类2.3 使用ValidationUtils手动校验①.编写校验工具类②.在Controller中使用2.4 校验单个参数简介:在...

2019-12-09 09:35:22 835

原创 SpringBoot引入第三方jar包的处理方式

在项目开发中不可避免会遇到引入第三方jar包的情况,这些第三方jar是在Maven仓库中没有的。有两种处理方式:将jar包安装在本地maven库(本地私服)将jar包放入项目目录中。其中第一种方式与通常的使用方式没有太大的区别,这里主要介绍第二种方式。常见的打包方式又分为两种,打成jar包或者打成war包。1.打成jar包假如我们的第三方jar放置在项目根路径下,即:此时,...

2019-10-23 15:32:23 8196 3

原创 SpringBoot中使用Log4j2配置实例

Spring Boot 默认使用 Logback,但相比较而言,Log4j2 在性能上面会更好。添加依赖:除了添加log4j2的依赖,还要排除Springboot默认依赖的logback依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>s...

2019-10-23 14:03:41 797

转载 Log4j2中RollingFile的文件滚动更新机制

一、什么是RollingFileRollingFileAppender是Log4j2中的一种能够实现日志文件滚动更新(rollover)的Appender。rollover的意思是当满足一定条件(如文件达到了指定的大小,达到了指定的时间)后,就重命名原日志文件进行归档,并生成新的日志文件用于log写入。如果还设置了一定时间内允许归档的日志文件的最大数量,将对过旧的日志文件进行删除操作。...

2019-10-23 13:40:22 1486

转载 Swagger静态文档的生成

前言通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了。如果您还不熟悉这块,可以先阅读:Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档 Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解在这两篇文章中,我们构建的文档必须通过在项目中整...

2019-10-22 16:12:16 615

原创 使用Swagger2构建强大的API文档

简介​ 随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来越多。通常我们的一个RESTful API就有可能要服务于多个不同的开发人员或开发团队:IOS开发、Android开发、Web开发甚至其他的后端服务等。为了减少与其他团队平时开发期间的频繁沟通成本,传统做法就是创建一份RESTful API文档来记录所有接口细节,然而这样的做法...

2019-10-22 16:10:48 380

原创 单元测试之Mock模拟对Controller进行测试

文章目录一、Mock测试介绍二、使用方式一、Mock测试介绍定义在单元测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟对象来创建以便测试的方法。为什么使用mock测试​ 对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试(或者是通过Postman等工具),这样会使得测试变得很麻烦,比如...

2019-09-26 17:17:52 3194 3

原创 Mybatis批量提交

目录一、通过foreach标签二、通过Mybatis的ExecutorType.BATCH方式有两种方式可以实现mybatis的批量提交,第一种便是foreach标签,第二种便是开始mybatis的批量模式。一、通过foreach标签foreach标签即是通过迭代传入的集合或者数组,进行拼接sql。标签包含以下属性:​ item:表示集合中每一个元素进行迭代时的别名​ index:表示...

2019-09-23 16:27:26 6535 1

原创 SpringBoot配置多数据源

目录一、Springboot配置多数据源1.添加数据源连接信息2.编写每一个数据源对应的配置类3.排除Springboot默认的数据源4.测试二、xml方式配置多数据源spring-dao.xmlspring-beanContext.xml有时候我们需要一个项目中连接多个数据源,这里我们将展示spring boot以及xml方式配置多数据源的方式。一、Springboot配置多数据源spri...

2019-09-22 18:41:43 592

原创 axios+springboot实现图片预览(POST方式)

相关文章:axios+springboot实现文件上传(文件以及表单)、下载(post/get方式)简介图片实际上就是图片下载功能实现①后端下载逻辑就是接收前台传过来的文件名fileName,找到对应的文件返回给前台@RequestMapping("/download")public ResponseEntity<Object> downloadFile3(@Requ...

2019-09-18 15:10:18 1173

原创 SpringBoot发送邮件

使用java发送邮件很简单,直接上代码添加依赖:<!-- spring mail --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId>&l...

2019-09-08 20:11:53 4349 1

原创 RabbitMQ使用简介

一、简介1、什么是RabbitMQRabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于 AMQP协议的。2、AMQP协议模型[外链图片转存失败(img-EU2j6G82-1567943124724)(img/1.png “amqp协议模型”)]3、几个概念Server:...

2019-09-08 19:50:24 409

原创 axios+springboot实现文件上传(文件以及表单)、下载(post/get方式)

简介spring boot 的文件上传下载与 spring mvc的基本一致,只需注意一些配置即可。文章将介绍:上传:单文件上传方式、多文件上传方式、文件与表单数据一起提交的方式下载:get方式、post方式基础配置:需要文件上传的必定是web项目,web依赖必不可少:<!-- web --><dependency> <groupId>o...

2019-09-07 21:39:10 6793 2

转载 (快速入门)MyBatis Generator源码分析修改和自定义插件

快速开始环境配置生成代码源码修改修改配置文件加入解析器修改DTD校验文件新建解析器获取表数据生成文...

2019-08-25 23:10:41 590

原创 commons-fileUpload实现文件上传下载

目录一、文件上传二、文件下载一、文件上传(1).简介    commons-fileUpload上传组件是Apache的一个开源项目,可以到http://commons.apache.org/proper/commons-fileupload/下载最新版本(该组件需要commons-io包的支持)。该组件使用方便,同样可以实现一个或多个文件的上传,也可实现限制上传文件大小等功能...

2019-08-14 15:33:12 5662 3

原创 commons-lang包常用工具类的基本使用

目录比较常用的工具类有:ArrayUtils常用方法:StringUtils常用方法:ObjectUtils常用方法:RandomUtils常用方法:NumberUtils 常用方法:DateUtils常用方法:SystemUtils常用方法:Commons Lang这一组API也是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现...

2019-08-14 15:32:51 1476 1

原创 commons-io工具包的基本使用

目录一、工具类IOUtils的使用:FileUtils的使用:FilenameUtils的使用FileSystemUtils的使用:二、输入、输出三、Filters过滤器四、Comparators比较器五、Monitor文件监控简介:java io操作是开发中比较常用的技术,但是如果每次都使用原生的IO流来操作会显得比较繁琐。Common IO 是一...

2019-08-14 15:32:32 40642 7

原创 commons-email邮件工具类的基本使用

相关文章:JavaMail-使用Java发送邮件SpringBoot发送邮件简介:commons-email是apache提供的一个开源的API,是对javamail的封装,相比之下,apache-mail 显然要好用得多,不过这两者本质上实际是一样的,apache-mail 实际上就是将 javax.mail 中那些让人烦心的邮件配置封装掉了。引入jar包: &lt...

2019-08-14 15:31:07 6887

原创 commons-dbutils数据库工具包的基本使用

目录一、简介:二、主要类与相关接口介绍DbUtils类QueryRunner类ResultSetHandler接口三、测试示例:一、简介:commons-dbutils是Apache开源组织提供的用于操作数据库的工具包。对于数据库的操作无外乎就是【增删改查】,本质上只是SQL语法的不同。一个普通的查询操作其处理过程如下:创建Connection连接。 创建...

2019-08-14 15:30:49 2666

原创 commons-dbcp数据库连接池基本使用

简介:commons-dbcp工具包是用来提供数据库连接池服务.话不多说,奉上使用方法:①引入maven依赖<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <v...

2019-08-14 15:28:56 5998

原创 动态代理基本使用(JDK动态代理与CGLib 动态代理)

JDK 动态代理使用反射机制在方法执行过程中动态地添加功能Java 实现动态代理主要涉及以下几个类:java.lang.reflect.Proxy: 这是生成代理类的主类,通过 Proxy 类生成的代理类都继承了 Proxy 类,即 DynamicProxyClass extends Proxy。 java.lang.reflect.InvocationHandler: 这里称他为"...

2019-08-14 14:40:52 92

原创 Java发送短信

发送短信肯定需要使用第三方接口,Java本身是肯定不能直接发送短信的。第三方接口有很多,这里直接找个正规靠谱一点的学习一下这里使用了中国网建(http://www.smschinese.cn/)①打开网址后,点击立刻注册体验②登陆后,点击【修改短信密钥】,查看当前密钥:③点击【短信API接口】,查看示例代码Jar包依赖: <dependenc...

2019-08-14 14:25:44 709

原创 二维码工具ZXing与visual-qr-code的使用

目录一、Google二维码工具ZXing:简介:示例:二、图片二维码生成工具 visual-qr-code:一、Google二维码工具ZXing:简介:二维码现在是非常的火热,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。现在我们使用Google提供的ZXing开源类库来体验一下二维码的生成与解析。引入依赖: <depend...

2019-08-14 13:36:50 500

websocket.zip

websocket所需js文件:stomp.js、sockjs.js Stomp websocket使用socket实现双工异步通信能力。但是如果直接使用websocket协议开发程序比较繁琐,我们可以使用它的子协议Stomp SockJS sockjs是websocket协议的实现,增加了对浏览器不支持websocket的时候的兼容支持。 SockJS的支持的传输的协议有3类: WebSocket, HTTP Streaming, and HTTP Long Polling。默认使用websocket,如果浏览器不支持websocket,则使用后两种的方式。 SockJS使用"Get /info"从服务端获取基本信息。然后客户端会决定使用哪种传输方式。如果浏览器使用websocket,则使用websocket。如果不能,则使用Http Streaming,如果还不行,则最后使用 HTTP Long Polling

2020-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除