JAVA后端
文章平均质量分 60
大头程序员不头大
今天又是需要倍加努力的一天
展开
-
Error running ‘XXX‘: Command line is too long. Shorten command line for XXXor also for Spring Boot
启动服务时报错Error running ‘XXX’: Command line is too long. Shorten command line for XXXor also for Spring Boot总的来说:此part是很有可能超长从而导致Command line is too long现象的。原创 2023-11-01 16:36:41 · 3707 阅读 · 0 评论 -
MinIO分布式存储服务
MinIO 对象存储系统是为海量数据存储、人工智能、大数据分析而设计,基于Apache License v2.0 开源协议的对象存储系统,它完全兼容 Amazon S3 接口,单个对象的最大可达 5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。作为一个开源服务,MinIO 在设计上汲取了Glusterfs的相关经验不教训,系统复杂度上作了大量简化,目前大小只有40+M,部署只需要一个命令即可完成!原创 2023-05-02 17:10:57 · 4014 阅读 · 1 评论 -
Redis夺命8连Call,你顶的住吗?!
不管是面试还是在项目开发中绕不开的中间件其中就有Redis,那么你是否真的了解了Redis,看看下面的问题是否能回答上吧!原创 2022-12-19 15:50:58 · 168 阅读 · 0 评论 -
哪些场景会使@Transaction注解失效?
今天给大家分享一下关于@Transaction哪些场景会失效这个问题,整合了一些关于@Transaction相关知识,这是一个在项目中常常会用到的注解,然而在不经意的一些细节就会导致这个注解失效,无法实现事务特性。原创 2022-10-24 09:32:36 · 881 阅读 · 0 评论 -
软件工程-23种设计模式和7大设计原则
软件工程这一个大的学习章节中,其中有23种软件设计模式和七种设计原则需要掌握,下面为大家梳理出相关的知识点。原创 2022-10-04 17:05:55 · 3513 阅读 · 0 评论 -
初识flowable工作流-实现简单请假流程SpringBoot+VUE
flowable实现简单请假流程,后台使用SpringCloud分布式框架,前端使用Vue。原创 2022-07-13 17:27:27 · 3790 阅读 · 0 评论 -
JVM的工作机制
JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了。以下是这几天栈和堆的学习记录和心得。得些记录下来。以后有学到新的,会慢慢补充。一、先说一下最基本的要点基本数据类型、局部变量都是存放在栈内存中的,用完就消失。new创建的实例化对象及数组,是存......原创 2019-05-17 09:37:53 · 1180 阅读 · 0 评论 -
项目部署到docker步骤及命令
本篇以JAVA项目为例,概括项目从打包打部署到docker所有步骤及命令。原创 2022-06-16 16:54:38 · 2979 阅读 · 0 评论 -
JAVA项目中使用POI(版本4.2.1) 解决报错 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLDocumentPart
一、前言最近在做Word转Html时遇到了使用POI的4.2.1版本时报错:二、原因解析经过对比发现4.2.1版本比旧版本多了ooxml包,导致找不到POIXMLDocumentPart,所以这里的解决方案有两个:1.可以在项目中把旧版本的jar包源码修改后上传到maven仓库。2.依旧使用4.2.1版本并把配套的jar包依赖一同升级。本篇文章介绍第二种解决方法。三、依赖包依赖包中主要是xdocreport的版本一定要升级到2.0.2。 <dependency>原创 2022-05-31 13:43:42 · 13957 阅读 · 6 评论 -
JAVA中的BIO、NIO、AIO是什么?
一、前言最近面试时遇到了面试官问BIO、NIO、AIO相关的问题,当时有些深入点的问题没有答上来,这里给大家解释一下这三种IO的意义与关系。二、了解IO流Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字节流是最基本的,所有文件的储存是都是原创 2022-05-02 09:00:00 · 432 阅读 · 0 评论 -
JAVA 字符串转为HTML文件
JAVA字符串转为HTML文件原创 2022-04-14 18:45:18 · 3999 阅读 · 0 评论 -
JAVA项目中使用IText7和JFinal模板引擎渲染Html并显示中文
一、前言本文使用IText7中的html2pdf来实现HTML转PDF,模板引擎用的是JFinal模板引擎,当然其他模板引擎大同小异都是可以的,后面会给出解决转换后PDF无法显示中文问题。二、实现1.工具类代码import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;import com.itextpdf.html2pdf.ConverterProperties;原创 2022-04-14 18:36:21 · 967 阅读 · 0 评论 -
JAVA后台数据使用thymeleaf渲染html页面
本篇介绍如何使用thymeleaf从后台获取数据后渲染至html页面上。原创 2022-04-08 10:57:45 · 5297 阅读 · 0 评论 -
JAVA 计算当月有多少天
1、计算当前月总共的天数 /** * 计算当前月有多少天 * * @return */ public int getDays(int year, int month) { int days = 0; if (month != 2) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break原创 2022-04-08 10:43:42 · 6188 阅读 · 0 评论 -
数据库中的事务四大特性和隔离级别
一、数据库的事务是什么?为什么需要事务在多个改变数据库中的值操作下其中一个操作发生崩溃,继而会导致此次崩溃后的数据紊乱。举个例子:转账是生活中常见的操作,比如从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一操作,然而在数据库系统中,至少会分成两个步骤来完成:1.将A账户的金额减少100元2.将B账户的金额增加100元在这个过程中可能会出现以下问题:1.转账操作的第一步执行成功,A账户上的钱减少了100元,但是第二步执行失败或者未执行便发生系统崩溃,导致B账户并没有相原创 2022-03-10 10:53:42 · 1359 阅读 · 0 评论 -
Java项目Swagger报错:java.lang.NullPointerException: null
一、前言记录一下遇到的在SpringBoot项目中引用Swagger配置时启动报错,导致Swagger无法访问,但是项目可以启动并能访问后台接口。二、报错信息1、后台错误信息:2022-01-24 13:42:20.638 ERROR 18508 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Unable to scan documentation context defaultjava.lang.NullPoi原创 2022-01-24 14:35:54 · 7049 阅读 · 9 评论 -
MySQL添加索引优化问题
一、索引的特点当MySQL单表记录数过大时,增删改查性能都会急剧下降。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度。一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的,而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量。索引优势和劣势:优势: 大大减少了服务器需要扫描的数据量,可以帮助服务器避免原创 2021-12-22 17:21:52 · 354 阅读 · 0 评论 -
JDK1.8新特性 stream流使用
1、取集合中的指定字段为新的集合List<Long> ids = list.stream().map(CatalogCode::getId).collect(Collectors.toList());2、根据指定字段排序List<dto> list = dtoList.stream().sorted(Comparator.comparing(dto::getId)).collect(Collectors.toList());3、根据条件排序List<dto>原创 2021-12-13 09:55:09 · 442 阅读 · 0 评论 -
mabatis-plus分页查询只有500条返回值解决方案
1、前端传入pageSize设为-1。2、后台设置page的size为-1。IPage<Test> page = new Page((long)query.getPage(), (long)query.getPageSize());page.setSize(-1);原因是因为框架底层设置最大长度为500原创 2021-12-10 14:42:15 · 1937 阅读 · 0 评论 -
nacos配置使用教程
nacos配置使用教程原创 2021-12-01 18:17:18 · 17534 阅读 · 2 评论 -
实现逻辑性强的业务代码时写SQL好还是写面向对象代码好?
记得刚入公司带我的研发哥们能写一手漂亮的 SQL,搜索准确、执行快、效率高。配合Web项目中的查询展示数据的需求,基本是分分钟完成任务。那段时间基本是仰视的态度,每天都去讨教一点手写 SQL 的要点,翻看一些 SQL 优化调整的技巧。随后经历了几个项目的打磨,不断去调整公司的框架,发现项目中大段 SQL 出现的概率越来越小。我不得不停下脚步,开始反思和总结出现这种现象的原因。如果你手上不忙并且感兴趣,请听我慢慢道来。下面是一个经典的系统权限数据库设计,作为例子来展开论述。组织机构、用户、角色、转载 2021-10-25 11:12:29 · 927 阅读 · 0 评论 -
java8中for循环的几种写法
1、最常规的循环/* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int j = 0; j<integers.length; j++){ int i = integers[j]; System.out.println(i); } 2、使用迭代器循环/* 建立一个Collection */ String[] strings = {"A", "B", "C", "D"}; Collection原创 2021-10-24 15:43:22 · 8113 阅读 · 1 评论 -
SpringBoot集成ActiveMQ
一、消息队列概述1、什么是消息队列?消息队列是消息中间件的一种实现方式。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前的消息队列有:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。本篇主要对activeMQ集成到SpringBoot项目做详解。消息队列在实际应用中常用的使用场景有异步处理,应用解耦,流量削锋和消息通讯四个场景。异原创 2021-08-31 17:53:43 · 3289 阅读 · 0 评论 -
JAVA List中替换某一对象值
private static <E> void replaceAll(List<E> list,E oldObject,E newObject) { for (int i = 0; i < list.size(); i++) { //遍历 if(oldObject.equals(list.get(i))) { //如果list中存在与oldObject相同的值,则用newObject替换 list.se原创 2021-07-08 15:06:47 · 3601 阅读 · 1 评论 -
HTTP攻击方式
参考:https://www.cnblogs.com/xiaohuochai/p/6207488.html转载 2021-06-25 15:46:18 · 296 阅读 · 0 评论 -
Java word2007中的XWPFParagraph、XWPFTable解析、替换
本文是word2007版本也就是适合文件类型为.docx文件的解析过程,主要是对XWPFParagraph、XWPFTable对象解析。一、文件上传首先从前端传入word文件,可以将文件上传到服务器、本地项目中、临时路径,主要是为了获取到文件的绝对路径,用于将MultipartFile类型转为File类型。二、文件解析1、上传文件解析,这里业务需求是将解析出来的字段里面有特殊标识,识别到后替换。 File f = new File(file); if (!f.exists())原创 2021-06-25 11:44:04 · 3775 阅读 · 0 评论 -
Java 将List集合中的数据倒序、复制
如果想将List集合中的数据全部倒序又不重新new一个集合的话可以使用:List<String> list = new ArrayList();list.add("a");list.add("b");list.add("c");Collections.reverse(list);这样本来是:a,b,c --> c,b,a当然想要复制list集合中的数据也是有方法的,可以使用:List list1= Collections.copy(list)以上就是将List集合中的数据原创 2021-06-09 13:50:04 · 3573 阅读 · 0 评论 -
Java交集、并集、差集的方法
1、改变原有数组的值。交集:retainAll()并集:addAll()差集:removeAll()2、不改变数组原有值。调用CommonHelper工具类交集:mergeIds()差集:diffIds()原创 2021-06-04 16:37:52 · 155 阅读 · 0 评论 -
MySQL根据数据库名称、表名称查询所有字段以及相关信息
1、根据库名获取所有表的信息SELECTFROMinformation_schema.TABLESWHERETABLE_SCHEMA = ‘数据库名称’;2、根据库名获取所有表名称和表说明SELECTTABLE_NAME,TABLE_COMMENTFROMinformation_schema.TABLESWHERETABLE_SCHEMA = '‘数据库名称’;3、根据表名获取表名和表字段SELECTTABLE_NAME,TABLE_COMMENTFROMinfor原创 2021-05-28 11:00:44 · 2240 阅读 · 0 评论 -
Elasticsearch实战与原理学习
本次项目先用数据库的视图把各个表的相同字段整合为一个视图,并将此视图同步到ES。下面是学习ES使用方法以及原理:1、将ES部署到服务器。2、将数据同步到ES上。3、安装分词插件(IK)。4、分别用到了ElasticsearchTemplate、用实现类继承ElasticsearchRepository。5、接口要规定返回字段并且使用了以下注解@Builder@NoArgsConstructor@AllArgsConstructor@Document(indexName = “xx”, t原创 2020-12-28 10:52:20 · 312 阅读 · 0 评论 -
JAVA运行时的栈和堆
一、先说一下最基本的要点JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本数据类型、局部变量都是存放在栈内存中的,用完就消失,并且先进后出。new创建的实例化对象及数组,是存放在堆内存中的,用完之后靠垃圾回收机制不定期自动消除,先进先出。二、示例1、关于String str = "abc"的内部工作。Java内部将此语句转化为以下几个步骤:(1)先定义一个名为str的对String类的对象引用变量:String str;原创 2020-12-24 10:57:35 · 290 阅读 · 0 评论 -
将String类型的json字符串转为java对象
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier></dependency>原创 2020-08-10 17:49:54 · 920 阅读 · 0 评论 -
JAVA两个项目互相依赖步骤
参考文献:https://www.cnblogs.com/eenio/p/11340364.html原创 2020-05-27 16:40:46 · 1617 阅读 · 0 评论 -
数据库优化篇
从几个方面总结了数据库优化方案:一、数据库设计1、索引创建适当的索引,每当为一个表添加一个索引,select会更快,可insert和delete却大大变慢,因为创建了维护索引需要许多额外的工作。采用函数处理的字段不能利用索引条件内包括了多个本表的字段运算时不能进行索引where子句中,如果索引列是函数的一部分,优化器将不使用索引而使用全表扫描。例如:(低效)select … from [dept] where [sal]*12>25000;(高效)select … from [dep原创 2020-05-14 16:48:46 · 172 阅读 · 0 评论 -
JAVA各常用类型之间转换
1、整型转化为字符串类型:String s = Integer.toString(i);String s = String.valueOf(i);String s = " "+ i;2、字符串类型转化为整型i=Integer.parseInt(s);3、char数组转化为字符串char[] c = {‘a’,‘b’,‘c’};String s = String.valueOf©;...原创 2019-10-24 09:04:03 · 123 阅读 · 0 评论 -
JAVA 什么是多态?
面向对象编程有三大特性:封装、继承、多态。封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么,什么是多态呢?1.定义:多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象...原创 2019-05-16 17:53:28 · 21970 阅读 · 1 评论 -
JAVA事务浅谈
1.什么是JAVA事务?通常的观念认为,事务仅与数据库相关。事务必须服从ISO/IEC所制定的ACID原则。ACID是**原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability)**的缩写。事务的原子性:表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。事务的一致性:表示当事务执行失败时,所有被该事务影响的数据...原创 2019-05-17 11:01:00 · 174 阅读 · 0 评论 -
Spring IOC/DI和AOP
一、分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/14138461.1、IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Jav...原创 2019-05-17 15:41:49 · 6084 阅读 · 0 评论 -
Spring Boot初学笔记
一、什么是Spring Boot?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。在使用传统的Spring去做Java EE(Java Enterprise Edition)开发中,大量的 XML 文件存在于项目之中,导致JavaEE项目变得慢慢笨...原创 2019-05-17 16:38:45 · 286 阅读 · 0 评论 -
ActiveMQ消息中间件
参考资源:https://blog.csdn.net/cs_hnu_scw/article/details/81040834转载 2019-05-30 09:54:05 · 92 阅读 · 0 评论