Java
一心精通Java的靓仔程序员
研究生在读,有点忙,看到消息便回复,见谅。
展开
-
IDEA Springboot 项目静态文件修改不自动热更新的问题 【完美解决方案】
场景:Springboot 项目的页面和静态文件,在项目启动后,修改无效。按照下面的配置可以解决问题。解决方案:步骤一点击File–>setting–>Build,Execution,Deployment,勾选Build project automatically,点击apply。步骤二使用快捷键Shift+Ctrl+Alt+/,然后选择Registry 勾选compiler.automake.allow.when.app.running上图是20...原创 2022-05-13 16:10:04 · 3137 阅读 · 0 评论 -
解决HttpServletRequest请求流只能读取一次的问题,附上Springboot的代码
实际开发碰到的问题: springboot项目中,为了防止sql注入,采用Filter拦截器对所有请求流中的json数据进行校验,请求数据没问题则继续向下执行,在后边的代码中应用到请求参数值时,发现request中的json数据为空;除上边描述的情况,尝试过两次从request中获取json数据,第二次同样是获取不到的。解决request请求流中的数据二次或多次使用问题: 继承HttpServletRequestWrapper,将请求体中的流copy一份,覆写getInp...原创 2022-03-04 14:47:05 · 2058 阅读 · 0 评论 -
Springboot使用Swagger生成API接口文档,但是接口返回值都是Map类型,完美解决办法(前后端分离开发必备)
问题描述Swagger2没有提供描述返回值的API,导致不能注解map类型的返回值,不能返回Json,也不能描述只返回一个实体类中的部分字段的情况。我们需要自己实现这个功能。网上找到的思路实际上我在网上发现有人实现了这个功能,实现的原理是使用第三方jar包生成一个类,这个类里包括返回值里应该有的字段,这些字段使用原生的swagger注解,再让swagger去解析这个类。这样做的优点是确实把参数信息加入了swagger的缓存中;缺点是需要生成额外的类。这个思路的链接在这里https:翻译 2021-09-16 22:04:24 · 4081 阅读 · 0 评论 -
Postman接口测试之POST、GET请求方法
一、基础知识 1.HTTP的五种请求方法:GET, POST ,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。 GET请求:请求指定的页面信息,并返回实体主体。(通常用来接收数据)。 POST请求:向指定资源提交数据进行处理请求,数据被包含在请求体中。POST请求可能会导致新的资源的建立、已有资源的修改。(通常用来发送数据)。 HEAD请求:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。 PUT请原创 2021-09-16 22:04:45 · 4645 阅读 · 0 评论 -
SpringBoot获取application.yml中数据的值
第一种方式1.application.yml文件server: port: 8088 #项目端口号 servlet: context-path: /SpringBoot #访问项目名称url: http://127.0.0.0:8088 2.一个TestController测试类package com.xxx.controller;import org.springframework.beans.factory.annotation.Valu...原创 2021-09-14 19:22:16 · 7421 阅读 · 0 评论 -
Java实现驼峰转下划线和下划线转驼峰方法
Show Codeprivate static Pattern linePattern = Pattern.compile("_(\\w)");private static Pattern humpPattern = Pattern.compile("[A-Z]");/** * 驼峰转下划线,最后转为大写 * @param str * @return */public static String humpToLine(String str) { Matcher matcher原创 2021-09-14 19:17:52 · 5950 阅读 · 1 评论 -
Java的fastjson对象,JSON,字符串,map之间的互转
1.对象与字符串之间的互转将对象转换成为字符串String str = JSON.toJSONString(infoDo);字符串转换成为对象InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);2.对象集合与字符串之间的互转将对象集合转换成为字符串String users = JSON.toJSONString(users);将字符串转换成为对象集合List<User> userList = JSO原创 2021-09-14 19:05:41 · 342 阅读 · 0 评论 -
Springboot注解事务使用总结,有资金业务的项目必备回滚功能@Transactional
在使用Springboot的注解事务的时候,需要考虑到事务的传播行为、遇到什么类型的异常时,事务才起作用、事务方法之间的嵌套调用时,怎么样才生效等等诸多问题。开启事务管理@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />事务注解详解默认遇到throw new RuntimeException("…");会回滚需要捕获的throw new Exception("…").原创 2021-09-14 19:02:11 · 481 阅读 · 0 评论 -
Eclipse或者(STS)-设置格式化代码时不格式化注释
Eclipse或者(STS)-设置格式化代码时不格式化注释在Eclipse里设置格式化代码时不格式化注释今天格式化代码 发现直接format会把注释也一块格式化了,有时候会把好好的注释弄的很乱。甚为头疼。查阅之后解决办法如下:Windows -> Preferces -> java -> Code Style –> Formatter 或者搜索Formatter编辑Edit 进入Comments选项卡取消勾选“Enable Javadoc com...原创 2021-09-14 18:29:19 · 437 阅读 · 0 评论 -
Java 合并两个对象数组List并按照对象中某个字段排序(比如按照id的升降序)
Java 合并两个对象数组List并按照对象中某个字段排序(比如按照id的升降序):public static void main(String[] args) { List<YourObjectPO> yourObjectPOs1 = new ArrayList<>(); YourObjectPO r1 = new YourObjectPO(); r1.setInsertTime(1544326153000L);//12-9原创 2021-09-14 18:28:25 · 923 阅读 · 0 评论 -
Java中ArrayList的序列化与反序列化,方便把数组存入MySQL中
在应用开发中需要将ArrayList进行保存,可以将其序列化成String后进行保存,并可以反序列化读出(具体就体现在MySQL中存入多图片的链接数组): /** * 把ArrayList序列化成String * @param list * @return */ public static String List2String(List<String> list){ JSONArray jsonArray = new J原创 2021-09-14 18:22:53 · 979 阅读 · 0 评论 -
Springboot集成WebSocket+Thymeleaf+Echarts完成数据的实时推送,并在网页前端实时渲染。不同于Thymeleaf通过Ajax局部刷新
完成效果图:项目准备提要:<!-- 分页插件 --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version></dependency><!-- 热加...原创 2021-06-06 18:37:29 · 856 阅读 · 0 评论 -
SpringBoot使用ProxyServlet配置多个服务代理!多个!
实现代理服务功能,思路是:客户端发送请求,由代理服务端通过端口监听到请求,然后在作为代理去访问真实的服务器,最后由真实的服务器将响应返回给代理,代理再返回给浏览器。引入相关依赖<!-- https://mvnrepository.com/artifact/org.mitre.dsmiley.httpproxy/smiley-http-proxy-servlet --> <dependency> <groupId>org.m原创 2020-11-08 22:26:33 · 2678 阅读 · 0 评论 -
Springboot与整合Redis使用缓存
一、什么是缓存缓存就是数据交换的缓冲区(称作:Cache),他把一些外存上的数据保存在内存上,为什么保存在内存上,我们运行的所有程序里面的变量都是存放在内存中的,所以如果想将值放入内存上,可以通过变量的方式存储。在JAVA中一些缓存一般都是通过Map集合来实现的。缓存在不同的场景下,作用是不一样的具体举例说明: ✔ 操作系统磁盘缓存 ——> 减少磁盘机械操作。 ✔ 数据库缓存——>减少文件系统IO。 ✔ 应用程序缓存——>减少对数据库的查询。 ✔ Web服务器缓存——>减少应原创 2020-11-08 22:19:29 · 284 阅读 · 0 评论 -
Springboot使用插件sitemapgen4j自动生成最大限度50000个url的sitemap文件,并自动创建sitemap的index索引型文件
Index如果超出了 5 万条需要写入另外一个 sitemap 当中,这个功能 sitemapgen4j 已经替我们实现了,无需担心。如果超出,生成的文件就像是这样的:- q1.xml- q2.xml- q3.xml- q4.xml这样的话,在站长平台这里,如果新增了文件就要新增一条sitemap 网址记录,很麻烦。但是各个搜索引擎的站长平台已经想到可以提交索引文件的方法,而这个插件也是可以自动生成索引文件的。我们把每次生成的 sitemap 文件的地址,添..原创 2020-10-08 16:40:10 · 1740 阅读 · 0 评论 -
Springboot利用xjar包并使用maven插件便捷对jar包加密,防止jar包反编译泄露源码数据
主要要感谢:https://github.com/core-lib/xjarhttps://github.com/core-lib/xjar-maven-plugin主要内容在以上两个链接。下面是我总结的加密过程和部署到Linux服务器的步骤1、先打开上面两个链接,了解了主要内容后,添加依赖<project> <!-- 设置 jitpack.io 仓库 --> <repositories> <repos.原创 2020-10-06 20:05:34 · 7037 阅读 · 0 评论 -
index [XXX] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]问题解决
原文:https://blog.csdn.net/jingyoushui/article/details/100690329主要原因是由于磁盘空间已经使用了超过95%以上了!原创 2020-07-12 16:33:07 · 490 阅读 · 0 评论 -
failure in bulk execution: reason=[parent] Data too large, data for [indices:data/write/bulk[s]]
问题场景:elasticsearch批量插入数据的时候出现下列异常failure in bulk execution:[4]: index [*******], type [_doc], id [61890005], message [ElasticsearchException[Elasticsearch exception [type=circuit_breaking_exception, reason=[parent] Data too large, data for [indices:d原创 2020-07-12 10:41:25 · 4780 阅读 · 0 评论 -
elasticsearch批量插入数据的时候出现java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection
问题:elasticsearch每次都批量插入几万数据量,然后就会出现下列问题。看这个问题应该是配置的问题ERROR [https-jsse-nio-443-exec-4] 2020-07-09 23:31:54 (EsMiniDaansouDataInfoWithBLOBsUtil.java:80) java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-0 [ACTIVE]原创 2020-07-10 00:07:59 · 25942 阅读 · 10 评论 -
Springboot2.2.x以上的版本访问URL带有[]{}|等字符,网页GET请求报400的错误
问题描述:之前使用的是Springboot2.0.0版本没有什么问题的,然后因为使用elasticsearch7.8.0版本后要把Springboot升级到2.3.1后就出现这个问题(其实这个问题应该在Springboot2.2.x以上都会出现了,只是我一下升级到2.3.1版本)elasticsearch的部分请看链接:https://blog.csdn.net/qq_38680405/article/details/107225724前端的GET请求url中带有路径参数,这个参数中有[]或.原创 2020-07-09 21:13:34 · 2531 阅读 · 1 评论 -
Eclipse中maven项目执行Maven clear的时候,报Errors running builder 'Thymeleaf Validation Builder' on project xx
问题场景:Eclipse中maven项目执行Maven clear的时候,报Errors running builder 'Thymeleaf Validation Builder' on project '项目名'.的错误,如图:因为在此前我用过一次timemachine去还原过Mac的系统了,然后每次使用maven的mvn clear的时候就出现这个错误,很烦!也不知道是不是还原系统的...原创 2020-04-30 00:26:01 · 629 阅读 · 0 评论 -
出现Provider com.spire.ms.charsets.CharsetProvider not found编译错误的解决办法
我是使用spire的2.2.0版本PDF maven包在启动springboot的时候出现上述Provider com.spire.ms.charsets.CharsetProvider not found编译错误,后查官网发现2.4.3版本修复这个bug了。解决办法就是把低于2.4.3版本换成2.4.3版本以上即可。maven的代码 <dependency>...原创 2020-01-11 17:59:00 · 1773 阅读 · 0 评论 -
集合框架
集合框架注意:所有集合框架都是泛型的!!!一.List集合① .list的超级父类接口类:collection(超级接口,就是接口可以继承接口)② .ArrayList i.在ArrayList的存储方式中:底层还是通过数组方式来进行存储 ii.list集合中,如果定义集合对象,但是又不确定存储的类型,则什么类型都是可以直接存储进去的,取出数据统一都是object,原创 2017-07-10 19:07:31 · 224 阅读 · 0 评论 -
异常与文件
异常与文件一、异常a) 异常指的是在程序运行过程中发生的异常事件,通常是有硬件问题或者程序设计问题所导致的。在Java等面向对象的编程语言中异常属于对象b) 在程序当中:本应该正常执行的代码,由于逻辑错误或者相关的语法错误导致的无法执行正常的结果;程序在运行过程中发生由于硬件设备的问题,软件设计错误等导致程序异常事件(在Java等面向对象的编程语言中)异常本身是一原创 2017-07-11 14:50:17 · 298 阅读 · 0 评论 -
Java关键字
Java关键的认识和解析原创 2017-07-08 20:34:00 · 303 阅读 · 0 评论 -
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request
异常信息:org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.142894256...原创 2019-01-17 15:54:29 · 7280 阅读 · 0 评论 -
解决macOS下基于JDK1.8+的SpringBoot应用启动特别慢的问题!!!!百分之九十九能解决
现象如下图所示:在macOS上基于JDK1.8启动springboot-web应用需要耗时90多秒钟,而同样的配置,在windows上2秒左右就可以启动解决办法1.首先通过hostname命令查看自己的主机名称2 修改host文件添加内容 127.0.0.1 localhost MacBookPro3 查看修改之后的运行效果和windows基本同一水平博主原文:https:...转载 2019-05-27 13:49:00 · 846 阅读 · 0 评论 -
MAC使用Eclipse或者STS启动springboot的DEBUG,等待时间非常非常慢,想砸电脑的超级解决方法
原因:项目中有大量的断点解决方案:删除项目中的断点。养成好习惯:每次项目启动,把之前的断点去掉。断点设置太多会导致debug启动慢,我等待了足足两分钟,显然这对于Java项目调试给出很大的障碍。此为解决springboot的debug的启动时间慢的,还有正常启动springboot的时候的很慢可以查看下面的链接https://blog.csdn.net/qq_38680405/articl...原创 2019-05-27 13:55:18 · 1010 阅读 · 0 评论 -
清除Java字符串中的所有html标签,有效!
//如果有双引号将其先转成单引号 String htmlStr = str.replaceAll("\"", "'"); String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式 String regEx_style = "<style[^>...原创 2019-05-27 13:57:43 · 3980 阅读 · 0 评论 -
在MySQL中直接去重数据!速度最快的代码!含The total number of locks exceeds the lock table size的解决办法!
首先是查出重复的数据,下面的代码是查出重复数据中id大的数据。就是比如有三个数据是一样的,用下面的代码可以查出id大的另外两个数据。如果要查出id小的数据,把Min(id) AS minno改为Max(id) AS minno多说一句,id是你的主键,有些人用number有些人用num,我用id,就是个字段名SELECT *FROM 表名WHERE id(主键,保留最小的...原创 2019-10-09 20:46:06 · 317 阅读 · 0 评论 -
关于Java的对象,构造器,构造方法...
1、对象: Everything is object 万物皆对象 所有事物都有两个方面: 有什么属性:用来描述对象 能够做什么方法:告诉外界对象有哪些功能; 后者以前者为基础 大的对象的属性也可以是一个对象。通俗的讲:对象:生活中具体的实体 类:是不存在的,对象的抽象(一种虚拟的概念定义):包含一些列对象共同点的属性和行为集合。类:人类、房子原创 2017-05-19 22:12:35 · 267 阅读 · 0 评论