![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot
涵山韵海
双手与代码齐飞,猿心共Java一色
展开
-
使用Idea中将单个java类打包成jar包
然后点击右边小窗口的Build就可以了。到此打包结束,别的还提到了还要编写清单文件 MANIFEST.MF,我这里没有操作这一点,普通的Java项目不需要创建MANIFEST.MF。4.加载编写出的单个类文件(编译后的 .class 文件,一般在 target 目录下),如下图打开添加file, 找到文件。开工第一天,正在暗自爽,领导让帮个忙,给一个工具类打成jar包,供其他项目组使用,这就开始了尝试。其实网上已经有好多人写过了,只是尝试了几篇,坑得不轻,自己做下笔记,留作后面在遇到此种情况参考吧。原创 2023-01-29 16:13:52 · 5637 阅读 · 1 评论 -
No constructor found in ........ matching [java.lang.Integer, java.lang.String, java.lang.String
写了个简单查询,竟然程序报错了,上网上搜吧,一堆的各种加无参构造方法的说法,总感觉不是解决问题的根本点,好端端的一个对象,无缘无故怎么就会缺少无参构造方法了呢?思路:对象上用了两个注解方法@Data、@Builder,问题应该就在这两个注解上面原因:@Builder对一个DTO实现一个构造器,但是在做Json反序列化的时候发生错误,原因就是缺少无参公共的构造函数,但是呢,手动写一个无参构造函数的时候,编译会发生错误,就是和@Builder冲突。就是@Builder注解会把对象的默认值清掉,但又不能成功原创 2023-01-09 18:30:38 · 1266 阅读 · 1 评论 -
查询数据库被锁/等待的线程sql
2、查询等待中的进程。3、查询被锁的sql。原创 2022-10-19 09:48:30 · 759 阅读 · 0 评论 -
数据同步--开启多线程进行数据同步(2)
最近补充多线程在程序中处理业务的方法,做个笔记:原创 2022-06-16 19:00:05 · 202 阅读 · 0 评论 -
文件上传过大被限制问题-springboot
第一种:1、创建配置文件。import javax.servlet.MultipartConfigElement;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.servlet.MultipartConfigFactory;import org.springframework.context.annotation.Bean;import org.spring原创 2022-05-27 21:56:15 · 3747 阅读 · 0 评论 -
数据同步--分页中开启多线程进行数据同步(1)
在进行接口之间数据同步时候,数据量大的话,定时任务或者接口会执行很久,需要优化的话,思路可从以下几点考虑:1.先分页处理。2.分页中进行多线程处理。3.根据服务器配置,决定开启的多线程条数,一般的服务器配置建议开启10-15个。代码逻辑参考如下: //数据总条数 int total = xxxxxx.selectCount(); //共查询多少次 int count = 0; if (total > pageSize原创 2022-04-25 16:27:09 · 1019 阅读 · 0 评论 -
按照指定规则顺序进行排序 mysql
需求背景:客户要求多种多样,图片展示排序也是个性化突显,现场需要拍十张图片上传取证,但个性客户要求前5张图片要指定5个类型且指定排序,后五张不指定,故设计数据库表的时候,在全局参数配置表中增加一个顺序的参数(下面会贴上图),一是在取证拍照时候,前端根据参数配置的顺序去排版,二是在图片回显时候,也根据这个参数配置的类型数据去回显。过程:1.参数配置如图:2.前端拍照框展示:前端会调取后端公共接口去获取参数配置表数据,根据上面图一中的顺序去展示。3.前端页面回显3.1前端页面也许按照参数配置表中原创 2022-02-24 16:07:03 · 670 阅读 · 0 评论 -
Hutool线程工具--ThreadUtil
关于Hutool中线程工具-ThreadUtil的使用JDK1.5开始Java提供了concurrent包可以供我们使用和解决并发以及线程的问题但是在具体实现上需要我们动手的逻辑还需要造轮子,那么ThreadUtil的出现就是为了更简单的使用线程。自己试着用了其中两个方法,写了两个demo玩,发觉挺好用,记录一下。方法1:ThreadUtil.excAsync();方法1:ThreadUtil.execute();demo:@Testpublic class AsyncTestControll原创 2021-12-16 21:02:23 · 17415 阅读 · 6 评论 -
base64上传文件,后端接受处理(四)
前端把文件(图片,视频,音频,压缩包)以base64流的形式上传文件,调取后端接口,进行上传。上代码吧:第一步,先建个对象:import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import javax.validation.constraints.NotBlank;@Data@ApiModel("文件上传")public clas原创 2021-12-09 16:52:38 · 24442 阅读 · 2 评论 -
文件通过后台判断获取,图片以流的形式返给前端,zip下载包直接弹框下载(三)
没想到啊没想到,还有这么变态的需求功能,没想到还会再来记录个三,前两次写好了返给前端图片流了,这回呢,需求变成:是图片,进行登录权限校验,是压缩包zip,进行下载,是音频或者视频,不校验,直接以流的形式返给前端展示,改代码后,结果如下:先说下,我这是在linux环境部署的项目运行。package com.xxx.micro.safemanageexternal.controller;import com.xxx.micro.common.util.ResultUtil;import com.xxx原创 2021-12-09 14:06:07 · 395 阅读 · 0 评论 -
文件通过后台判断获取,并转成base64格式返给前端(二)
接上一篇写完,接下来测试时候,发现了问题,图片就在本地,部署的服务器上存储着,不需要通过http所谓的网络请求,好吧,改代码,获取本地图片:代码:package com.xxxxx.xxxxx.xxxxx.controller;import com.xxxxx.micro.common.util.ResultUtil;import com.xxxxx.micro.common.web.BaseController;import io.swagger.annotations.Api;import原创 2021-12-06 10:35:50 · 504 阅读 · 0 评论 -
文件通过后台判断获取,并转成base64格式返给前端(一)
最近的程序都是部署在linux系统,原来需求是通过前端拼接地址,可以经过nginx的转发,请求到图片文件,但被客户提出这样不安全,需要加拦截判断,就改成文件由后台获取判断,符合了,就转成base64格式,返给前端。有两种写法:1:HTTP网络图片:package com.xxxxx.xxxxx.xxxxx.controller;import com.xxxxx.micro.common.util.ResultUtil;import com.xxxxx.micro.common.web.BaseCo原创 2021-12-06 10:27:02 · 560 阅读 · 0 评论 -
list转换成树形结构
list转换成树形结构开发中常常遇到查出来是list,但需要转换成树形结构,特别是遇到省、市、县、区或者部门角色查询等,这时候可以在sql语句中处理,也可以在代码中转换,先将代码中处理方式贴出来public static List<Map> convertToTree(List<Map> list) { List<Map> all = list.stream().filter(t -> !t.containsKey("parent原创 2021-07-02 15:56:20 · 1730 阅读 · 0 评论 -
遍历MAP的三种方式
遍历MAP的三种方式第一种:普遍使用,二次取值通过Map.keySet遍历key和value:for (String key : map.keySet()) {System.out.println(“key= “+ key + ” and value= ” + map.get(key));}第二种通过Map.entrySet使用iterator遍历key和value:Iterator<Map.Entry<String, String>> it = map.entry原创 2021-06-16 16:07:23 · 155 阅读 · 0 评论 -
系统接口对接:(3)--系统之间接口请求调用的工具和方法-commons-httpclient-3.1
前面写过系统之间接口请求调用的工具和方法,这次再补充一个:用commons-httpclient,版本3.1来操作,简单易用pom添加依赖: <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version&g原创 2021-03-17 11:30:50 · 1782 阅读 · 0 评论 -
springboot2.4.1降级到springboot2.0.6.RELEASE的坑
前提:(这次项目很被动,被牵着鼻子走,以至于遇到一个坑又一个坑)紧急会议支援另一个团队的前端,了解任务需求后,在外网三下五除二搭建好后台框架,功能测试完毕交付给前端,第一个坑:前端说她在内网敲的代码,我搭建好的项目需要移到内网(内网无法联网),关键是后期部署的环境也不在内网,搞不懂她为啥写在内网,当时觉得无所谓,迁移代码就行,就做了。第二个坑:代码迁移到内网,项目导进IDEA,maven update-----直接挂掉。。。。。。。,原因:内网的maven私服里面,jar包缺失严重,没几个jar包,原创 2021-02-24 11:37:35 · 1377 阅读 · 0 评论 -
根据路径地址压缩文件/文件夹-zip,并下载zip(二)
该功能和需求及逻辑在上篇一中已经说明和实现,这是第二种压缩方法,下载同上,只是代码量相对少些,也做下笔记吧。@GetMapping("/zip") public void zip(String srcDir, HttpServletRequest request, HttpServletResponse response)throws Exception { System.out.println("压缩中..."); // 本地资源路径 Stri原创 2021-01-06 18:07:06 · 697 阅读 · 1 评论 -
根据路径地址压缩文件/文件夹-zip,下载zip,删除压缩包zip(一)
业务需求:客户需要根据选择省市县区来下载对应行政区划下的图片,且里面图片文件夹及内容建立的顺序也要是省-市-县/区-镇/街道。。。。顺序建立,思路:存储时候按照上面行政区划顺序建立文件夹存储,下载时候根据前端传来行政区划字段进行查询和压缩下载;百度了一堆方法,无奈个人学识尚浅,他人写的不带注释,看不懂,无奈摸索清楚后,记录此笔记。代码:这时候前端传值url格式,文件夹的话:比如:url=河南省-xx市-xxx县,文件的话:url=河南省-xx市-xxx县.123.jpg @GetMa原创 2021-01-06 17:38:54 · 806 阅读 · 2 评论 -
jxl导入,导出
pom.xml引入包: <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> ...原创 2019-12-13 08:45:49 · 560 阅读 · 0 评论 -
poi-3.17版本 excel导出,excel图片导出
上一篇导出是和若依结合,抛开若依,正常图片导出:此处只写导出工具类,其他请参考上一篇:https://blog.csdn.net/hanshanyunhai/article/details/111227132只是工具类返回格式有所不同而已,poi还是3.17版本package com.common.utils;import org.apache.commons.io.output.ByteArrayOutputStream;import org.apache.poi.hssf.usermod原创 2020-12-15 18:49:42 · 473 阅读 · 0 评论 -
获取项目的IP和端口--springboot
package com.common.utils;import org.springframework.boot.web.context.WebServerInitializedEvent;import org.springframework.context.ApplicationListener;import org.springframework.stereotype.Component;import java.net.InetAddress;import java.net.Unknow.原创 2020-12-15 18:01:27 · 1007 阅读 · 0 评论 -
SpringBoot 集成 easypoi 实现 Excel 导入
使用以前的jxl和apache的poi,今天在项目中给别人帮忙写导入excel,项目框架引入了easy poi,那就再开始用这个玩玩导入吧,废话不说,上代码:1,先引入pom依赖: <!-- easyexcel-excel导出 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</a原创 2020-09-09 17:02:39 · 791 阅读 · 4 评论 -
项目之间的接口数据交互
场景描述:现有项目A和项目B,因业务需要,要同步两个项目之间的一些数据。项目A的一些信息要推送给项目B:推送方法 String company = "xxxx公司"; String name = "xxxx"; Map<String,String> map = new HashMap<String, String>(); map.put("companyName", company); map.put("dr原创 2020-08-19 16:58:13 · 1485 阅读 · 0 评论 -
SpringBoot实现Interceptor拦截器打印请求信息
SpringBoot实现Interceptor拦截器打印请求信息配置类实现WebMvcConfigurer 中的addInterceptors接口,注册Interceptor拦截器。package com.example.demo.Interceptor;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.I原创 2020-05-25 10:16:33 · 4512 阅读 · 4 评论 -
windows下通过脚本启动、停止jar包
1启动jar创建一个以bat后缀结束的文件,写入一下代码,两种写法: @echo off java -jar xxx.jar pause或者@echo off java -jar xxxx.jar exit2停止运行的java程序,这里是通过直接杀死进程实现的,也是两种写法:@echon offtaskkill /PID 11880 -t -fpause/PId 后跟的是进程id,-t -f 是强制杀死。或者@echo offtaskk..原创 2020-05-22 09:34:49 · 9728 阅读 · 4 评论 -
Spring Boot:使用Rabbit MQ消息队列
Spring Boot:使用Rabbit MQ消息队列综合概述消息队列消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程则可以从消息队列中读走消息,而消息队列就是在消息的传输过程中保存消息的容器,你可以简单的把消息队列理解为类似快递柜,快递员(消息发布者)往快递柜...转载 2020-04-02 15:10:59 · 294 阅读 · 0 评论 -
thymeleaf 直接调用后台Service之${@myBean.doSomething()}
背景thymeleaf的官方文档中提到了${@myBean.doSomething()}可以访问容器中bean的数据。前端thymeleaf <label>性别: </label> <select name="status" th:with="type=${@dict.getType('sys_sex')}"> <option v...原创 2020-04-02 13:47:34 · 1627 阅读 · 0 评论