Springboot
文章平均质量分 50
Springboot
一心精通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 · 2914 阅读 · 0 评论 -
COM.SUN.MAIL.UTIL.MAILCONNECTEXCEPTION: COULDN‘T CONNECT TO HOST, PORT: SMTP.QQ.COM, 25; TIMEOUT -1;
场景项目中使用了JavaMail发送邮件,在本地测试无任何问题,但是上传到阿里云服务器(Centos 7)上就报错:Couldn't connect to host, port: smtp.163.com, 25; timeout -1;产生原因阿里云出于安全考虑默认禁用25端口导致发邮件失败解决方式1.向阿里云申请解封25端口。点击跳转链接2.在application.yml这设置465端口:spring: ##根据自己的情况填写原创 2022-04-02 14:40:56 · 3156 阅读 · 0 评论 -
解决HttpServletRequest请求流只能读取一次的问题,附上Springboot的代码
实际开发碰到的问题: springboot项目中,为了防止sql注入,采用Filter拦截器对所有请求流中的json数据进行校验,请求数据没问题则继续向下执行,在后边的代码中应用到请求参数值时,发现request中的json数据为空;除上边描述的情况,尝试过两次从request中获取json数据,第二次同样是获取不到的。解决request请求流中的数据二次或多次使用问题: 继承HttpServletRequestWrapper,将请求体中的流copy一份,覆写getInp...原创 2022-03-04 14:47:05 · 1750 阅读 · 0 评论 -
Springboot使用@ServerEndpoint做Websocket遇到前后端分离跨域问题,即网页链接和wss链接不一样引起的跨域问题,亲测解决方案。
Springboot使用@ServerEndpoint做Websocket遇到前后端分离跨域问题,即网页链接和wss链接不一样引起的跨域问题,亲测解决方案。原创 2022-03-04 14:44:04 · 2757 阅读 · 0 评论 -
Springboot使用Swagger生成API接口文档,但是接口返回值都是Map类型,完美解决办法(前后端分离开发必备)
问题描述Swagger2没有提供描述返回值的API,导致不能注解map类型的返回值,不能返回Json,也不能描述只返回一个实体类中的部分字段的情况。我们需要自己实现这个功能。网上找到的思路实际上我在网上发现有人实现了这个功能,实现的原理是使用第三方jar包生成一个类,这个类里包括返回值里应该有的字段,这些字段使用原生的swagger注解,再让swagger去解析这个类。这样做的优点是确实把参数信息加入了swagger的缓存中;缺点是需要生成额外的类。这个思路的链接在这里https:翻译 2021-09-16 22:04:24 · 3849 阅读 · 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 · 6377 阅读 · 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 · 5910 阅读 · 1 评论 -
Mac的MySQL导出表名(具体是Navicat导出表名称)
MYSQL如何只导出数据库中表的的名字?navicat中如何只导出数据库内表的名称,不导出字段名方式一:1、打开navicat,进入你想导出表名称的库内,新建查询;2、录入:show tables;3、点击运行,即可查询当前数据库中所有的表名称,点击【导出结果】,即可将数据库中所有表名称导入到一个excel文件中;方式二、1、打开navicat,进入你想导出表名称的库内,新建查询;2、录入:show tables;3、点击运行,即可查询当前数据库中所有的表名称,选中.原创 2021-09-14 19:16:46 · 300 阅读 · 0 评论 -
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 · 290 阅读 · 0 评论 -
Springboot注解事务使用总结,有资金业务的项目必备回滚功能@Transactional
在使用Springboot的注解事务的时候,需要考虑到事务的传播行为、遇到什么类型的异常时,事务才起作用、事务方法之间的嵌套调用时,怎么样才生效等等诸多问题。开启事务管理@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />事务注解详解默认遇到throw new RuntimeException("…");会回滚需要捕获的throw new Exception("…").原创 2021-09-14 19:02:11 · 433 阅读 · 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 · 893 阅读 · 0 评论 -
配合阿里云的负载均衡,使用宝塔面板,Nginx服务器作为Springboot和Vue的前后端分离开发过程记录
问题场景:在阿里云购买了数台ECS的服务器,然后每台服务器的EIP是1MB的带宽,再购买阿里云的均衡附在SLB,SLB的带宽为15MB。然后每台ECS安装好宝塔和Java环境、还有Nginx,开始前后端分离开发。采用Spring Boot 开发项目开发项目常规的方式其实很简单,无非还是采用原来Spring Mvc那一套,建控制器(Controller)然后建方法(action)再添加模板引擎(spring boot 推荐使用thymeleaf)这样开发开起来其实也没有大问题,毕竟是采用了MVC的思想原创 2021-09-14 17:59:30 · 1238 阅读 · 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 · 801 阅读 · 0 评论 -
宝塔面板的Apache通过反向代理配置wss服务,反向代理端口后的wss问题解决
问题场景:Websocket就是在web端上的全双工通信,一旦链接成功就是持久性的链接,不需要像Http那样请求一次那一次信息,浪费资源。原创 2021-06-06 14:37:08 · 2854 阅读 · 3 评论 -
SpringBoot使用ProxyServlet配置多个服务代理!多个!
实现代理服务功能,思路是:客户端发送请求,由代理服务端通过端口监听到请求,然后在作为代理去访问真实的服务器,最后由真实的服务器将响应返回给代理,代理再返回给浏览器。引入相关依赖<!-- https://mvnrepository.com/artifact/org.mitre.dsmiley.httpproxy/smiley-http-proxy-servlet --> <dependency> <groupId>org.m原创 2020-11-08 22:26:33 · 2415 阅读 · 0 评论 -
Springboot与整合Redis使用缓存
一、什么是缓存缓存就是数据交换的缓冲区(称作:Cache),他把一些外存上的数据保存在内存上,为什么保存在内存上,我们运行的所有程序里面的变量都是存放在内存中的,所以如果想将值放入内存上,可以通过变量的方式存储。在JAVA中一些缓存一般都是通过Map集合来实现的。缓存在不同的场景下,作用是不一样的具体举例说明: ✔ 操作系统磁盘缓存 ——> 减少磁盘机械操作。 ✔ 数据库缓存——>减少文件系统IO。 ✔ 应用程序缓存——>减少对数据库的查询。 ✔ Web服务器缓存——>减少应原创 2020-11-08 22:19:29 · 252 阅读 · 0 评论 -
记录Springboot的themeleaf的网页前端刷新一次请求但是后台Controller执行两次的问题
具体可以参考的链接有:https://www.oschina.net/question/3231567_2271167?sort=timehttps://blog.csdn.net/weixin_38958405/article/details/81016246?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=dis原创 2020-10-21 22:35:54 · 855 阅读 · 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 · 1583 阅读 · 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 · 6319 阅读 · 0 评论 -
springboot2.3.1+elasticsearch7.8+x-pack密码验证整合(亲测可用版)
原文,做笔记原创 2020-07-27 21:42:24 · 1337 阅读 · 1 评论 -
ElasticSearch7.8.0集群安全配置,即X-Pack TLS加密通信配置
原文,做笔记原创 2020-07-27 21:13:49 · 682 阅读 · 1 评论 -
记录druid-spring-boot-starter对springboot2.3.1版本的MySQL数据库密码加密过程,附带yml配置文件的配置
前言:把数据库链接和密码放在配置文件中,感觉像是在网上裸奔一样。我们使用druid后,需要给数据库密码加密,保证数据库密码不被泄露。操作步骤1.导入依赖包:版本可以按自己需要<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.2...原创 2020-07-19 21:38:14 · 1065 阅读 · 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 · 469 阅读 · 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 · 4426 阅读 · 0 评论 -
ES分片UNASSIGNED解决方案(ALLOCATION_FAILED,REPLICA_ADDED,NODE_LEFT,REINITIALIZED,CLUSTER_RECOVERED等等)
问题场景:今日早上登录head查看集群,发现有一个节点出现UNASSIGNED。然后点击灰色的分片查看原因为:可以看到reason为node_left。根据官方的解释有如下:INDEX_CREATED:由于创建索引的API导致未分配。 CLUSTER_RECOVERED:由于完全集群恢复导致未分配。 INDEX_REOPENED:由于打开open或关闭close一个索引导致未分配。 DANGLING_INDEX_IMPORTED:由于导入dangling索引的结...原创 2020-07-10 12:38:20 · 6609 阅读 · 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 · 25590 阅读 · 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 · 2399 阅读 · 1 评论 -
Linux服务器CentOs7对Elasticsearch7 集群搭建,完整过程和插件安装。附带安装过程出现的各种问题和解决方案。
此文章仅适用Elasticsearch.7x版本,因为7版本经过官方大改,不适合7以下版本参考,请知悉。本人安装环境Centos7.6、Elasticsearch7.8、三个主节点的配置(10.10.10.1、10.10.10.2、10.10.10.3)节点其实就是你的服务器外网ip完整步骤1、首先创建es的用户,这一点与之前版本的相同,因为es启动时,不允许使用root用户启动。创建用户后,并切换到新添加的用户下进行后续操作# 添加用户组groupadd es# ...原创 2020-07-09 16:02:07 · 2996 阅读 · 3 评论 -
SpringTest的JUnit出现java.lang.ClassNotFoundException:org.elasticsearch.action.Action
本人出现问题场景:springboot-parent的版本为2.2.6,elasticsearch的版本为7.8.0。出现问题的时候是在执行SpringTest的JUnit单元测试的时候出现的,然后还去Run As的Maven test后也出现相同的问题。但是在正常Run As的Java application时完全没有问题,所以问题出现在Junit的时候。Cause By:java.lang.ClassNotFoundException:org.elasticsearch.action.Act原创 2020-07-05 21:16:23 · 3160 阅读 · 2 评论 -
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 · 595 阅读 · 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 · 1699 阅读 · 0 评论 -
selenium之 chromedriver与chrome版本映射表(更新至v2.46)
看到网上基本没有最新的chromedriver与chrome的对应关系表,便兴起整理了一份如下,希望对大家有用:chromedriver版本 支持的Chrome版本v2.46 v71-73v2.45 v70-72v2.44 v69-71v2.43 v69-71v2.42 v68-70v2.41 v67-69v2.40 v66-68...转载 2019-08-07 09:00:59 · 173 阅读 · 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 · 3925 阅读 · 0 评论 -
MAC使用Eclipse或者STS启动springboot的DEBUG,等待时间非常非常慢,想砸电脑的超级解决方法
原因:项目中有大量的断点解决方案:删除项目中的断点。养成好习惯:每次项目启动,把之前的断点去掉。断点设置太多会导致debug启动慢,我等待了足足两分钟,显然这对于Java项目调试给出很大的障碍。此为解决springboot的debug的启动时间慢的,还有正常启动springboot的时候的很慢可以查看下面的链接https://blog.csdn.net/qq_38680405/articl...原创 2019-05-27 13:55:18 · 953 阅读 · 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 · 783 阅读 · 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 · 7241 阅读 · 0 评论 -
springboot的@cachePut在使用数据库更新数据时一些奇怪的问题
在使用@CachePut来更新缓存的时候,控制台报如下错误:java.lang.ClassCastException: java.base/java.lang.Integer cannot be cast to java.base/java.util.List at cn.dxszxw.service.serviceImpl.ExamServiceImpl$$EnhancerBySp...原创 2018-10-28 14:51:10 · 2753 阅读 · 1 评论