自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (7)
  • 收藏
  • 关注

转载 多线程事务怎么回滚?说用 @Transactional 可以回去等通知了!

1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。2,在spring中可以使用注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。3,下面用一个简单示例演示多线程事务。

2024-01-25 11:24:11 273

原创 为提高效率使用ParallelStream竟出现各种问题

退出 ensureCapacityInternal 后,两个线程同时执行 elementData[size] = e,线程 B 的 size++ 先完成,假设此刻线程 A 读取到了线程 B 的更新,线程 A 再执行 size++,此时 size 的实际值就会大于数组的容量,这样就会发生数组越界异常。线程 2 一开始读取 size 值 = 1、将 e 添加到 size 位置后时间片就用完了,轮到执行第三步 size++ 读取到了线程 1 的更新,size 直接被更新成了 3。3.1 元素数量丢失。

2023-06-25 15:34:39 780

原创 docker搭建达梦数据库

# tag 只是完整镜像名称(208c253db295)的可读别名。因此,可以根据需要使它们与同一镜像关联。然后上传到linux服务器。导入完成后,可以使用。容器启动完成后,使用。我是选择了去官网下载。

2023-06-19 15:08:25 2051

原创 docker搭建redis

接下来就是要将redis 的配置文件进行挂载,以配置文件方式启动redis 容器。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)2)、挂载 redis 的持久化文件(为了数据的持久化)。命令:docker search 若redis启动失败,查看日志 若出现。1)、挂载 redis 的配置文件。进入redis容器查看是否没问题。三、Docker挂载配置文件。本人的配置文件是放在。

2023-06-19 13:55:22 365

原创 docker搭建nginx

2、在容器中查询出nginx的相关配置文件存放位置。6、将容器中的相应文件copy到刚创建的管理目录中。2、启动/停止/重启docker服务。3、退出容器,回到本地linux系统。5、查看Nginx是否部署成功。3、查看docker版本信息。4、查看所有docker镜像。2、查看下载好的镜像文件。3、创建并运行Nginx容器。4、停止并移除Nginx容器。7、再次启动容器并作目录挂载。1、拉取Nginx镜像文件。1、进入Nginx容器当中。一、安装Docker。5、本地创建管理目录。

2023-06-19 11:03:17 12023 12

原创 整合Springboot+MybatisPlus+达梦数据库

整合Springboot+MybatisPlus+达梦数据库,以及一些坑

2023-05-25 14:14:31 5163 4

原创 String的replaceAll你真的会用吗?

String的replaceAll看着简单,那是因为还没遇到问题

2023-03-29 16:21:52 111

原创 解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

解决docker nginx 502错误 connect() failed (111: Connection refused) while connecting to upstream

2023-03-16 14:36:58 7247 10

原创 JAVA将百万级数据高效的导出到EXCEL表单

JAVA将百万级数据高效的导出到EXCEL表单

2023-02-02 10:35:15 3208 3

原创 ElasticSearch安装和部署和整合springboot

elasticsearch安装和部署和整合springboot

2022-12-27 15:21:43 2154

原创 Jekins安装和部署

jekins安装和部署

2022-12-09 11:31:02 1890

原创 java简历解析

简历解析

2022-12-08 17:18:49 1341 4

原创 Mybatis xml if标签判断

mybatis xml if判断方式

2022-12-02 11:37:34 5205

原创 通过PaddleOCR识别PDF

python利用paddleocr读取pdf内容

2022-11-23 15:05:42 2944

原创 搭建青龙面板和接入傻妞机器人

1.首先安装好docker后配置docker容器映射路径和拉取镜像出现此界面代表下载好镜像然后登录青龙面板进行拉取仓库拉取仓库 2.13版本是添加订阅然后点击运行进行拉取仓库的2.13版本前是添加定时任务进行拉库的,这点区别大家要明白执行定时任务二、实现公众号自动回复1.接入傻妞机器人1.安装unzip gcc gcc-c++ git✨ (这个是运行c的环境,安装就对了)2.安装傻妞如果上面命令提示404,那就是代理失效了,更换代理即可,目前可用代理。

2022-08-24 11:18:31 4446

原创 读取 resources 目录下的文件路径的几种方法

本文中提供了九种方式获取resources目录下文件的方式。

2022-08-15 08:54:01 308

原创 MQ 消息丢失、重复、积压问题,如何解决?

MQ 消息丢失、重复、积压问题,如何解决?

2022-08-05 11:53:12 863

原创 jar包打包成exe安装包

jar包打包成exe安装包形式,傻瓜式安装,非常详细包学会!

2022-07-18 11:25:35 7785

原创 多线程CountDownLatch使用demo

进行多线程其实不麻烦,麻烦的是对事务的控制处理,比如全滚或者部分回滚1.CountDownLatch原理就是分配多条线程,主线程进行阻塞,待全部线程完成,主线程才执行主要用到的方法就是创建对象的时候我们穿入的是线程数,然后每条线程执行完的时候执行countDown() 进行计数,代表已完成线程+1await() 则代表主线程阻塞,等待所有线程完成开往下执行以下是部分回滚的demo1.事务开启手动事务,根据业务具体回滚//开启多线程List<String> id

2022-05-30 08:38:25 310

原创 jar包 加密 ----xjar (亲测可用)

jar包代码非常重要,我们需要保护好我们的知识产权,所以加密就成了一门很重要的技术,下面先说一个开源的(开源的大家都懂,不是很安全)xjar开源免费,所以尝试了一下以下是github地址https://github.com/core-lib/xjar首先项目引入依赖注意,如果想xjar在test类进行加密,就需要<scope>test</scope> <!--注入xjar加密jar包--> <dependency>.

2022-05-27 17:26:43 3950

原创 spring创建对象的过程(生命周期)

在还没使用spring框架的时候,我们创建对象的时候方式1.类的反射2.new3.instance代码比较重复而且一些必须创建的对象,比如说业务层都需要创建,dao层也需要创建,这样导致我们重复操作了这些事情但是spring容器可以帮我们处理这些繁琐的事情,而且还能加强(具体如何加强后面说到)spring得益于它的IOC和AOP,大大减少我们的琐碎事情下面就来聊聊spring如何帮我们创建对象的!!spring创建对象流程1.启动application,扫描该app下的所

2022-04-26 16:07:23 3820

原创 初学MODBUS协议

MODBUS协议使用学习

2022-04-08 14:56:24 782

原创 聚簇索引和非聚簇索引

先说区别1.聚簇索引文件中的每个搜索码值都对应一个索引值2.非聚簇索引文件只为索引码的某些值建立索引项是不是看起来懵懵的简单直白点就是,聚簇索引的索引码直接对应数据值,非聚簇索引的索引码对应的是数据的地址,就是说聚簇索引的索引和数据是放在同一个文件里,而非聚簇索引就是索引和数据分开文件存放。举个例子我们常用的数据库mysql里的索引存储引擎InnoDB和MyISAM1.InnoDB就是聚簇索引的例子2.MyISAM就是非聚簇索引的例子那说一下InnoDB和MyISAM

2022-03-13 14:19:29 530

原创 Socket是啥?

Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口,Socket通信流程1.首先创建socket服务端然后绑定socket和端口号2.监听端口号3.客户端创建socket对象,然后发送请求连接到指定ip加端口4.服务端进行确认接受连接5.客户端向socket发送信息6.服务端进行消息确认7.知道客户端或者服务端关闭连接。...

2022-03-13 13:57:38 3025

原创 HTTP和HTTPS的区别

我们都知道HTTP通过TCP连接然后发送报文和接收报文,然后断开连接,这时候的数据都是暴露的没有任何的加密于是就在数据包加上加密钥匙,HTTPS就诞生了1.加密的方式对称加密:加密和解密都是同一个钥匙非对称加密:加密使用的钥匙和解密使用的钥匙不一样(公钥和私钥)哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆数字签名:报文信息后加上一段内容,证明是某个消息或者文件是某人发出/认同的(一般和哈希算法一起用,证明哈希算法没被修改)HTTPS数据传输流程1.浏览器将支持

2022-03-13 13:35:32 3715

原创 HTTP超文本传输协议

HTTP简介1.请求/响应的步骤 1.客户端连接到Web服务器 2.建立TCP连接,发送HTTP请求以及通过TCP套接字客户端向服务端发送文本报文 3.服务器接受请求并返回HTTP响应 4.释放TCP连接,服务器发送完报文主动释放连接,客户端被动释放连接(等待服务端发送释放连接请求) 5.客户端浏览器解析HTML内容问题:那在浏览器地址栏输入URL,按下回车之后经历的流程? 1.浏览器会依据URL查询DNS缓存解析URL的地址,找到IP地址...

2022-03-13 12:06:36 104

原创 GC垃圾回收机制

1.对象怎么才会被判定为垃圾的标准 没有被其他对象引用方法: 1.引用计数法:通过判断对象的引用数量来决定对象是否可以被回收(每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1),所以任何引用计数为0的对象实例可以被当作垃圾处理;优点:执行效率高,程序执行受影响较小,缺点:对象互相依赖无法作为垃圾回收2.可达性分析法:通过判断对象的引用链是否可达来决定对象是否可以被回收GC Root根对象2.如何垃圾回收?GC的分类:1.Minor GC年轻代。GC...

2022-03-11 17:49:19 396

原创 JVM内存模型1.8

先来看一下模型图,有标明作者!JVM不可怕,先来一一解剖属于线程私有的:程序计数器:1.当前线程所执行的字节码行号指示器(逻辑) 2.改变计数器的值来选取下一条需要执行的字节码指令;是不是觉得很复杂?其实就是通过程序计数器来保存线程上下文切换的时候所执行的字节码行号, 确保线程上下文切换的时候有保存所执行的第几行字节码的记录,切换回来还能在上次运行的行号继续运行下去;虚拟机栈Stack:主要保存java方法执行的内存模型,包含了多个栈帧,其中有1.局部变量表:包含方法执行过程中的所有变量

2022-03-11 15:37:41 1294

原创 TCP的三次握手和四次挥手,打太极,有来有回

1.先来看一下三次握手流程为何说TCP是可靠的连接第一次握手:建立连接时候,客户端A发送SYN(SYN=j)包到服务器B,并且进入SYN-SEND待发送状态,等待服务器确认;第二次握手:服务器收到SYN包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK的包,然后服务器进入SYN-RECV等待状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLIS

2022-03-11 11:49:02 2749

原创 java函数式编程

//demo定义方法public static <T extends Person> List<T> loadData(Supplier<List<T>> getListFunc, Function<List<T>, List<Json>> getItemValuesFunc) { List<Person> persons = getItemValuesFunc.apply(list); i.

2022-02-09 17:10:12 205

原创 el-upload自定义参数写法

<el-upload class="upload-demo" :action="uploadUrl" :on-change="(file =>{ return fileChange(file,scope.row,'company'); })" :befo.

2021-12-07 14:57:37 442

转载 element级联选择器根据id值回显父亲节

//回显(多级) changeDetSelect(key, treeData) { let arr = []; // 在递归时操作的数组 let returnArr = []; // 存放结果的数组 let depth = 0; // 定义全局层级 // 定义递归函数 function childrenEach(childrenData, depthN) { for (var j = 0; j..

2021-07-18 23:30:00 410 1

原创 启动vue项目时报错,npm ERR! Failed at the [email protected] postinstall script.

项目启动的时候报错,cant not [email protected]报错信息如下:npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! [email protected] postinstall: `node scripts/build.js`npm ERR! Exit status 1npm ERR!npm ERR! Failed at the [email protected] postinstall script.npm ERR.

2021-06-28 11:08:51 2681 2

原创 JDK1.8 Function函数式编程

//这里传入一个function对象,然后list遍历的时候创建了一个consumer消费者接收functin参数提供的方法行为 public static <T> List<T> monthDayFill(List<T> list, Function<T, MonthDay> monthDaySupplier) { list.foreach(new.

2021-06-23 23:51:54 562

原创 springboot获取静态文件路径

1.提供以下一种常用方法可以很好的获取静态资源路径即使打包了也可以获取URL url = ResourceUtils.getURL("classpath:ljvalley.csv"); InputStreamReader isr = new InputStreamReader(url.openStream(), Charset.forName("GBK"));...

2021-06-17 23:35:30 1251

原创 获取Spring管理的对象WebApplicationContext为空解决方法

由于业务需求,new 了个对象,不受spring容器托管,但是这个对象里面的方法里需要引用spring容器管理的一些对象,所以@Autowrited那些注入就没法用了,于是只能通过获取spring容器然后再从容器里取出来 WebApplicationContext wc = ContextLoader.getCurrentWebApplicationContext();Object xx = wc.getBean("xxx");但是wc为空了。。于是...

2021-06-14 12:46:03 3877 2

原创 npm换成cnpm淘宝源

最近重装了系统,所有环境都重新配于是刚好配前端的npm那就开始吧下载的不用说了npm config set registry https://registry.npm.taobao.org

2021-06-10 22:17:38 238 1

原创 Springboot整合taos时序数据库TDengine

springboot整合Tdengine时序数据库

2021-06-08 09:55:11 11420 9

原创 通过内存分析工具MAT(Memory Analyzer Tool),找出导致OOM的代码

程序放到生产服务器上跑了一段时间之后发现,程序报出了OOM了,导致程序无法运行于是开始了排查之路首先下载一个MAT工具强烈建议安装独立版的,虽然编译器

2021-06-06 00:21:55 637

原创 List<Map<String,String>进行stream流的分组

//对年份分组并去掉月份的0 Map<String, List<Map<String, String>>> map = list.stream() .map((item)->{ //去掉月份的0 int month = Integer.parseInt(item.get("month")); it..

2021-05-11 18:11:31 2232

mysql-5.7.31-winx64.zip

用到的工具: 1.Inno Setup:Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。(主要用来打包成exe文件格式) 2.Bat_To_Exe_Converter:可以将.bat格式的命令文件转换为exe文件 3.mysql数据库免安装版:解压后为文件夹形式,通过脚本设置mysql配置 4.jdk环境免安装版:解压后为文件夹形式 5.项目打包生成的jar包 6.redis压缩包 7.nginx压缩包

2022-08-09

innosetup-6.1.2.zip

  用到的工具:  1.Inno Setup:Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。(主要用来打包成exe文件格式) 2.Bat_To_Exe_Converter:可以将.bat格式的命令文件转换为exe文件 3.mysql数据库免安装版:解压后为文件夹形式,通过脚本设置mysql配置 4.jdk环境免安装版:解压后为文件夹形式 5.项目打包生成的jar包 6.redis压缩包 7.nginx压缩包

2022-08-09

battoexe-2728.zip

用到的工具: 1.Inno Setup:Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。(主要用来打包成exe文件格式) 2.Bat_To_Exe_Converter:可以将.bat格式的命令文件转换为exe文件 3.mysql数据库免安装版:解压后为文件夹形式,通过脚本设置mysql配置 4.jdk环境免安装版:解压后为文件夹形式 5.项目打包生成的jar包 6.redis压缩包 7.nginx压缩包

2022-08-09

基于词向量的词语相似度计算

1、要利用已训练过的词向量模型进行词语相似度计算,实验中采用的词向量模型已事先通过训练获取的。 2、于数据采用的是 2020 年特殊年份的数据,“疫情”是主要 话题。 3、在计算词语之间的相似度时,采用的词语与“疫情”相关 首先下载wiki中文语料(大约1.7G) https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 下载的文件名为“zhwiki-latest-pages-articles.xml.bz2” 1、加载已训练的词向量模型,直接调用 models.word2vec.Word2Vec.load 加载模型 wiki.model。 2、计算多种形式的词语相似度 3、model 计算不同方法下的词语相似度

2022-08-05

填充word文档热门demo,直接使用,包含可填充图片

> 一、简介 * 功能需求通过填充生成.doc和.docx格式的文档,由于使用easypoi内容太多(冗余),并且生成word的图片,文本换行不易处理。我将word部分代码抽离出来并对代码进行处理逻辑调整。生成单独、简单、易用的工具包 > 二、解决的问题,使用场景 * 图片填充问题,文本硬回车和软回车问题。在生成个人信息文档,简历文档时可以很轻松的使用工具来填充生成 > 三、使用说明 * 普通文本填充:在word中使用{{}}标记要填充的参数,并在map中设置值;例如:{{name}} map.put("name","普通字段填充") * 文本回车换行: * rn:硬回车:创建新段落,回车后不缩进 * n :软回车:不创建新段落,回车后自动缩进 * 图片填充:标记方法同普通文本一样,map的值是`cn.ncodev.model.WordImage`类型; * 列表填充:如下格式 * |{{t::list t.name|t.age|t.sex}}| > 具体如何使用可以查看测试类:`cn.ncodev.FillWordUtilTest`

2022-06-02

websocket demo

demo详细,直接使用,包含前端和后端,可直接启动,可用于学习和直接添加额外功能 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 WebSocket协议支持(在受控环境中运行不受信任的代码的)客户端与(选择加入该代码的通信的)远程主机之间进行全双工通信。用于此的安全模型是Web浏览器常用的基于原始的安全模式。 协议包括一个开放的握手以及随后的TCP层上的消息帧。

2022-06-02

ssm整合文档.docx

个人制作的ssm整合文档,里面有需要注意的要素,还有遇到的几个问题,利用简单的登录功能测试检测ssm是否整合成功,由于是word文档制作的,所以可以在打开视图查看目录,如果用json返回数据的时候出现406报错,可以加上两个 jackson包 ,jackson-core-sal和jackson-mapper-asl

2019-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除