
Java
文章平均质量分 84
Heartsuit
物联网平台架构师,优快云博客专家,阿里云专家博主,PMI认证项目管理专家(PMP),具备物联网、云原生、大数据等领域的研发经验。
展开
-
SpringBoot集成opencc4j实现繁体中文转为简体中文
介绍了如何使用 SpringBoot 集成调用第三方 jar 包 opencc4j 实现繁体中文到简体中文的转换。文章中提到了引入 opencc4j 依赖,编写了测试类来进行繁简体中文转换的示例,以及在诗词数据库中进行繁简体中文转换的应用。原创 2023-12-23 13:51:36 · 1402 阅读 · 0 评论 -
使用SpringBoot发送异步事件的方式解决前端接口调用超时问题
一个内部使用的系统,要求实现功能:管理员后台一键操作,不定期(举办活动时)批量更新并导出所有普通用户的用户与密码信息为 Excel 表格文件。目的是防止时间长了,如果密码不变的话,容易被别人冒用,所以每次不定期的活动开始前,要求重新生成密码。但是整个过程导致了前端导出接口超时。最终采用 Spring 自带的 ApplicationEventPublisher 异步方案解决因用户量增大导致生成密码、加密、导出的超时问题。原创 2023-05-27 17:29:45 · 3036 阅读 · 0 评论 -
JVM问题排查实战:线上环境CPU飙到300%多。。
背景线上一台后端服务所在机器CPU飙到300%多。。这个过程并不是一下子就完成的,而是过几个小时就来一次,奇了怪了。解决思路保护现场;查看日志;查看进程:top -c查看Java线程栈:jstack -l 32508 > jstack.32508.log查看Java堆内存:jmap -dump:live,format=b,file=32508-1.bin 32508工具分析...原创 2020-05-08 13:09:00 · 1925 阅读 · 0 评论 -
SpringBoot与MyBatistaPlus通过jtds集成SQLServer
通过 `SpringBoot` 与 `MyBatis Plus` 实现与 `SQLServer` 的集成, `CRUD` 。java.lang.AbstractMethodError: null原因: `net.sourceforge.jtds.jdbc.JtdsConnection` 没有实现 `isValid` ,因此需要指定 `connection-test-query` 以确保 `isValid` 不调用该方法。原创 2022-12-31 13:43:25 · 1471 阅读 · 0 评论 -
解决VueCropper导致的后端接收文件后缀名为blob的问题
最近为了响应系统对安全方面的要求,我们做的整改之一是对文件上传部分,除了在前端页面上限制用户可以选择的文件类型,还在后端接口中新增了对文件后缀名(这里主要是图片)的限制,核心代码如下。针对获取后缀名的代码单独做了测试后,确认了不是这段代码的的问题。那么问题应该是出现在前端了,也就是说,前端传过来的文件名称有问题,而且在观察前端请求时证明了这一猜想。插件进行图片切割头像,将切割后的头像转为blob文件上传。可是通过前端上传文件后,后端持续报错:无效的文件格式,见鬼。方法第三个参数设置为文件的名称即可。原创 2022-10-02 13:23:51 · 3030 阅读 · 2 评论 -
云原生之容器编排实践-Docker使用JDK-Alpine镜像的时区问题导致定时任务不执行
的文档提示:https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html#_timezone,我们可以将以下代码添加到。经过排查后发现,定时任务与实际时间有关联,而容器内(openjdk:8-jdk-alpine)的时间与实际时间相差了8小时,应该是时区问题。那么,如何解决容器内的时区问题呢?网上有给出各类方式解决这个问题,而且针对了不同的操作系统的镜像都给出了方案。镜像,参考其官方文档后,直接在构建自己的镜像时设置好时区。原创 2022-09-10 21:45:26 · 1150 阅读 · 2 评论 -
信创环境下密码强度规则:设置密码长度为6至20位,包含大、小写字母、数字、特殊字符组合
这篇文章的本意除了记录强密码规则的正则表达式之外,更关键的是对常用的工具网站做个整理和记录。原创 2022-08-07 20:53:48 · 5178 阅读 · 0 评论 -
全栈开发之SpringBoot发送邮件
背景发送邮件的场景:用户注册验证、忘记密码验证、监控告警、信息推送等。这里以发送邮箱验证码为例,演示 SpringBoot 集成发送邮件的各种方法:普通文本邮件HTML富文本邮件带附件邮件内联静态图片邮件HTML模板邮件获取授权码在通过程序集成邮件服务之前,需要到各邮箱服务提供商处获取授权码,这里以QQ邮箱为例。QQ邮箱–>设置–>账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务–>开启POP3/SMTP服务,按照指示原创 2022-04-10 09:47:12 · 2501 阅读 · 0 评论 -
SpringBoot集成MinIO实践
背景MinIO 是全球领先的对象存储先锋,在标准硬件上,读/写速度上高达183 GB/秒和171 GB/秒。MinIO用作云原生应用程序的主要存储,与传统对象存储相比,云原生应用程序需要更高的吞吐量和更低的延迟。通过添加更多集群可以扩展名称空间,更多机架,直到实现目标。同时,符合一切原生云计算的架构和构建过程,并且包含最新的云计算的全新的技术和概念。关于对象存储,使用起来无非就是文件上传、下载与删除,再加上桶的操作而已。这里使用 SpringBoot 集成 MinIO 单实例实战,关于 MinIO 分布原创 2022-02-27 12:13:49 · 1782 阅读 · 1 评论 -
导出文件:使用lowagie.itext导出数据为Word文件
背景日常工作中,曾遇到过导出数据为 Word 的需求,这里做个简单总结。前面分别总结了导出数据为 PDF , Excel 的实现方式,有时候需要在导出文件后进行编辑,那么这时候仅仅导出 PDF 文件是不够的。下面的实战是基于之前导出数据库表结构为 Word 用到的,后面有 一键导出PostgreSQL数据库表设计为word文档 的实战代码链接。涉及的技术有: SpringBoot 、 MyBatis 、 lowagie.itext 。依赖<!--输出word包start--><原创 2022-01-04 12:54:22 · 1954 阅读 · 4 评论 -
导出文件:使用Hutool导出数据为Excel文件
背景日常工作中,曾遇到过导出数据为 Excel 的需求,这里做个简单总结。相对于导出文件为 PDF 或者 Word ,导出 Excel 相对更常用。在实际中,遇到有的项目中使用前端插件导出 Excel 的方式,当数据量比较大时,对客户端要求比较高,导出很慢,影响用户体验。另外一种是今天这里介绍的后端直接查询、封装、导出为 Excel 文件。涉及的技术有: SpringBoot 、 MyBatis 、 hutool ,使用 hutool 工具导出数据为 Excel 。依赖<dependenc原创 2022-01-03 18:19:20 · 8440 阅读 · 5 评论 -
导出文件:使用itext导出数据为PDF并添加文字与图片水印
背景日常工作中,曾遇到过导出数据为 PDF 的需求,这里做个简单总结。当前业务共涉及到四个实体类,后台将不同实体的数据组装后导出为 PDF 文件。领域模型StdCommitteeStdCommitteeBranchStdCommitteeSecretariatStdCommitteeSecretariatStaff实体关系涉及技术SpringBoot 、 MyBatisPlus 、 itextpdf 、 ConfigProperties 自定义配置。导出接口/**原创 2022-01-02 18:59:30 · 3062 阅读 · 0 评论 -
SpringBoot Admin 实现Actuator端点可视化监控(开启认证)
简介之前一篇文章介绍了SpringBoot Admin 实现Actuator端点可视化监控, 但是没有进行认证, 基本就是“裸奔”, 这在生产环境中是绝对不允许的!下面, 从开启客户端Actuator认证, 到开启SpringBoot Admin认证, 一步一步配置, 每配一步, 检查对应的效果。Note:SpringBoot版本: 2.1.4SpringBoot Admin版本: 2...原创 2019-06-29 08:00:10 · 7524 阅读 · 3 评论 -
SpringBoot Admin 实现Actuator端点可视化监控
简介Actuator可视化监控SpringBoot AdminNote:SpringBoot版本: 2.1.4SpringBoot Admin版本: 2.1.5Spring Boot Admin Server单独建一个Spring Boot Admin Server工程作为服务端在Maven的pom.xml文件中添加 spring-boot-admin-server 与 ...原创 2019-06-27 17:31:57 · 5501 阅读 · 1 评论 -
SpringBoot2开启Actuator端点监控
SpringBoot本身提供了一套监控端点, 可以查看应用的基本信息、 健康程度、 配置等监控信息, 很容易上手。开启Actuator在Maven的pom.xml文件中添加 spring-boot-starter-actuator 依赖:<dependency> <groupId>org.springframework.boot</groupId>...原创 2019-06-26 18:41:30 · 8964 阅读 · 3 评论 -
入门Nginx之-负载均衡(SpringBoot)
简介采用一个SpringBoot后端服务,在不同的端口启动,以模拟多个服务,这里以两个为例说明;操作系统:Windows 7第一步 备好多项服务,启动代码package com.nginx.loadbalance.controller;import org.springframework.beans.factory.annotation.Value;import org.s...原创 2019-06-14 11:49:45 · 553 阅读 · 1 评论 -
LeetCode[263] Ugly Number(Java)
Problem: Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.原创 2015-12-26 20:53:29 · 1079 阅读 · 0 评论 -
The constructor SchemaExport(Configuration) is deprecated
Hibernate 中new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);生成表未成功最近在学习Hibernate的基础知识,但是由于所看教程中使用的Hibernate版本较低(3.x),而自己所用的版本为5.x,导致上述采用Annotation自动建表失败,警告: The constr原创 2015-12-26 20:22:30 · 2639 阅读 · 0 评论 -
Euclid's GCD Algorithm——MIT Open Courseware(Computability)
Euclid's GCD algorithmAn example of ancient computational thinking, a really wonderful non-obvious efficient algorithm is Euclid’s GCD algorithm.How do you reduce a fraction like 510/646 to lowest terms?原创 2015-06-27 21:10:35 · 959 阅读 · 0 评论 -
出自国外某牛人的一道面试题(About 42)
首先,这道题并不难,但是也不简单。ProblemWrite some code that calculates how many numbers under a million (positive integers) have digits that add up to 42.这是来自于国外某大牛的blog提到的一道面试题。作者先是在文中慨叹了人类在招聘软件开发人员时的极度无奈,接原创 2015-07-02 21:22:10 · 856 阅读 · 0 评论 -
Eclipse里面找不到DatabaseExplorer,怎么办?
今天试了下用Eclipse连接MySQL数据库,连接成功后,想要通过database explorer在Eclipse中显示所连数据库的内容,但是我用的Eclipse(JavaEE)的下方并没有database explorer这个选项卡,猜测是可能没装插件;Problem: 在万能的Internet上搜索后,说是可以通过windows——>show view——>others来添加。但是问题又原创 2015-06-09 21:56:31 · 3997 阅读 · 3 评论 -
Leetcode[12-13] Roman to Integer & Integer to Roman(Java)
Roman to IntegerProblem: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.Java Solution:public class Solution { Map<Character, Intege原创 2015-06-06 11:10:00 · 653 阅读 · 0 评论 -
Leetcode 运行输出与本地结果不一样的解决方法(用例子说明)
Problem: Write an algorithm to determine if a number is “happy”. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of t原创 2015-05-29 11:08:24 · 11540 阅读 · 1 评论 -
LeetCode[136] Single Number 位运算异或,HashMap(Java)
Problem: Given an array of integers, every element appears twice except for one. Find that single one.Thought1:The standard key to solve this problem is bit manipulation. As XOR will return 1 only w原创 2015-05-29 10:28:50 · 1517 阅读 · 0 评论 -
There is insufficient memory for the Java Runtime Environment to continue.
Problem环境:Linux VM_43_129_centos 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/LinuxArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte ...原创 2018-07-17 13:31:55 · 137696 阅读 · 7 评论 -
Spring Boot配置内置Tomcat的maxPostSize值
Background前端页面表单输入数据较多,包含多个文本、多张图片,在数据未压缩的情况下,最终上传失败。Problem 1后端报错: java.lang.IllegalStateException: The multi-part request contained parameter data (excluding uploaded files) that exceede...原创 2018-07-20 17:45:47 · 55495 阅读 · 2 评论 -
服务器运维相关问题
2018-08-27TypeError: Cannot assign to read only property ‘exports’ of object ‘#’module.exports = {^TypeError: Cannot assign to read only property 'exports' of object '#&amp;lt;Object&amp;gt;'需要引入插件 bab...原创 2018-10-12 15:27:16 · 1425 阅读 · 0 评论 -
Vue中用axios向后端接口POST数据,Spring端收不到
两种方式解决:使用URLSearchParams构造参数FrontEndhex2str(hex) { let that = this; /* method1: send parameter with URLSearchParams (Note: ) * This bring a new compatability problem, can be solved by node ...原创 2018-11-13 14:11:03 · 735 阅读 · 0 评论 -
Failed to close the ServletOutputStream connection cleanly, Broken pipe
Problem1: 服务端报错:Broken pipejava.io.IOException: Connection timed out at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) at sun.n...原创 2018-11-14 12:34:12 · 3478 阅读 · 1 评论 -
上手华为软开云DevOps前后端分离实践之-后端SpringBoot
简介华为软开云主要目的是为企业提供一套`DevOps`(即开发运维)的云端解决方案,包括项目管理、代码仓库、编译构建、部署发布、流水线,甚至`CloudIDE`,实现云端的开发与维护。这里我们先忽略华为软开云的项目管理功能(`Scrum`,看板里的需求规划、任务指派、工时分配),测试功能,文档管理功能,CloudIDE等;重点关注`项目创建、代码托管、编译构建、部署、发布以及流水线功能`;同时...原创 2019-04-18 12:59:59 · 2270 阅读 · 2 评论 -
Java获取视频的时长——日期时间处理
Problem: 如何通过Java获取视频的时长?想通过Java来获取某文件夹(或多个文件夹)下的视频的总时长经过查询资料,发现可以通过JAVE实现:The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project。 JAVE下载地址原创 2016-01-04 08:59:40 · 9155 阅读 · 0 评论