自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 【Hibernate】Row was updated or deleted by another transaction 异常原因及处理

出现此问题,说明操作的对象时应用了乐观锁机制例:当你正在操作某一条数据时,你还未提交,这个时候假设version = a,但是在你没提交之前,已经有操作写入数据库,导致version = a + 1,此时你再提交你的操作,便会出现version版本不一致问题解决方法:从数据库中把version查出来,复制给实体对象;再更新...

2022-03-03 11:55:06 2530

原创 【Linux】docker 实现运行tomcat项目并部署war包(含容器内项目https配置)

本文操作环境 centOS 71.linux安装docker1. 查看是否已安装docker列表yum list installed | grep docker2.在linux服务器上安装dockeryum -y install docker3.启动dockersystemctl start docker4.docker安装tomcat7(根据自己的需要安装tomcat版本)docker pull tomcat:7-jre75.docker安装mysql(根据自己的需要.

2022-02-16 17:21:21 2519

原创 Win10内置应用误卸载恢复方法

也可以用Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"} 重装所有应用 (比如误删除了便签应用,找不到相关应用,执行此操作可以恢复)Get-AppxPackage *onenote* | Remove-AppxPackage 删除OneNote相关应用。

2024-05-14 16:34:48 423

原创 如何在springboot项目中删除引用jar包中的无用bean

公司有个项目,时间比较赶,而且项目的部分需求,和之前做的项目部分功能一样,为了赶速度和直接将之前多模块的maven项目中的部分模块,直接以jar包的形式引入到新项目中了,虽然省去了不少开发时间,但是造成项目需要导入引入项目jar的相关依赖,导致项目臃肿,启动很慢。配置完毕,项目启动速度快了很多,也去除了很多jar依赖,还删除了很多无用表,比如flowable工作流的相关表,之前项目启动时老是自动去查询工作流的相关表,导致删除数据库的工作流的表项目就会启动不起来,现在通过。

2024-04-07 15:16:04 518

原创 Spring-Retry(重试机制)

在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。一、@Retryable是什么?

2024-03-21 17:15:02 638

原创 public/private/protect/ 的区别

被其修饰的类,属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。2.private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。但是大家在工作的时候,又不会真正全部都使用public,那么到底什么情况该用什么修饰符呢?再就是作用范围最小原则。

2024-01-22 09:25:13 511 1

原创 Java中的实体类为什么要 implements Serializable?

如果接受者加载的该对象的类的 serialVersionUID 和发送者的类版本号不同的话,反序列化会爆出 InvalidClassException 错误。什么时候会导致报出这个错误呢?从类声明来看,我们以为的没有进行序列化,其实是在声明各个不同变量的时候,由具体的数据类型帮助我们实现了序列化操作。如果平时留意的话,我们会发现序列化操作用于存储时,一般是对于 NoSql 数据库,而在使用 Nosql 数据库进行存储时,如 redis,它就没有 varchar,int 之类的数据结构。

2023-08-10 10:29:40 194

原创 MySQL:Left Join的where和on查询关键字注意!!!

因为对左表无右表匹配行的行而言,遍历右表后b=FALSE,所以会尝试用NULL补齐右表,但是此时我们的P2对右表行进行了限制,NULL若不满足P2(NULL一般都不会满足限制条件,除非IS NULL这种),则不会加入最终的结果中,导致结果缺失。如果没有where条件,无论on条件对左表进行怎样的限制,左表的每一行都至少会有一行的合成结果,对左表行而言,若右表若没有对应的行,则右表遍历结束后b=FALSE,会用一行NULL来生成数据,而这个数据是多余的。请不要继续往下翻!当然,实际情况中MySQL会使用。

2023-06-19 09:51:14 310

原创 SpringBoot之使用Redis实现分布式锁

SpringBoot之使用Redis实现分布式锁

2023-01-31 14:13:49 1207 2

原创 MongoTemplate的基本使用方法

MongoTemplate的基本使用方法

2023-01-31 10:29:07 2569

原创 Java加密套件强度限制引起的SSL handshake_failure

似乎问题就在这里,就是通过java代码访问https服务器时,候选的加密套件中没有服务器希望的TLS_RSA_WITH_AES_256_GCM_SHA384。Java支持所有的加密套件,但是对于发行的JDK版本,它默认做了很多加密长度限制的裁剪,就是只出口强度低的加密,这是美国政府对于安全软件的强制性规定。返回结果确实如此,根本就不存在TLS_RSA_WITH_AES_256_GCM_SHA384,也不存在基于AES256-GCM-SHA384的加密方法。检查发现,根证书和中间证书都存在,信任链没有问题。

2022-09-21 14:24:02 1059

原创 class中的newInstance()方法和new关键字

class new instance

2022-07-21 14:17:54 1216

原创 java 中 equals() 相等的两个对象,hashcode() 一定相等?

java 中 equals() 相等的两个对象,hashcode() 一定相等?

2022-07-11 11:00:42 1992

原创 单例模式的几种写法,以及为什么懒汉式线程不安全,饿汉式是线程安全的

懒汉式: 在第一次调用时才会创建实例化对象,只适用于单线程模式。当在多线程中,如果多个线程同时进行,就会实例化多个对象。懒汉式创建模式://懒汉式public class Person { public static Person p; private Person(){}// public static Person getInstance(){ if(p==null){ p=new Person();//在第一...

2022-04-29 16:58:36 127

原创 【JAVA】 spring框架中的Bean的理解

@Bean在Spring和SpringMVC中无所不在,将这个概念内化很重要,下面分享一下我的想法:一、Bean是啥1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;(@Component , @Repository , @ Controller , @Service , @Configra

2022-04-27 15:32:53 362

原创 git reset 3种方式

git reset命令有3种方式:1、git reset --mixed:此为默认方式,等同于不带任何参数的git reset。2、git reset --soft:回退到某个版本,只回退了commit的信息,如果还要提交,直接commit即可(修改的内容变成未add的状态),索引(暂存区)和工作目录的内容是不变的,在三个命令中对现有版本库状态改动最小。3、git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,所有修改的内容都会丢失, (修改的代码

2022-04-25 10:03:34 11161 1

原创 【JAVA】hashCode() 和 equals() 之间的关系

介绍equals()的作用是用来判断两个对象是否相等。hashCode()的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。关系我们以“类的用途”来将“hashCode() 和 equals()的关系”分2种情况来说明。1、不会创建“类对应的散列表”这里所说的“不会创建类对应的散列表”是说:我们不会在HashSet, Hashtable, HashMap等等这些本质是散列表的数据结构中,用到该类。例如,不会创建该类的..

2022-04-22 11:17:33 258

原创 nginx负载均衡的session问题

查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态,下面提供了几种方式来解决session共享的问题:1、不使用session,换用cookiesession是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。

2022-04-19 10:41:44 3163

原创 【Git】commit your changes or stash them before you can merge 解决办法

使用git下拉远程代码时经常遇到这个问题解决办法!!!1.通过git stashgit stashgit pullgit stash pop通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保

2022-04-01 11:13:29 177

原创 【MySQL】MySQL-binlog日志格式 binlog_format三种模式

前言:最近在迁移云数据库的时候,遇到了这个问题。了解了一下binlog_format三种模式问题:去哪里设置binlog_format呢?假设在linux系统中,修改my.cnf文件即可设置MySQL-binlog的日志格式my.cnf 在etc 目录下面cd etc/默认binlog_format 都是为MIXED1.三种模式介绍1. Row日志中会记录成每一行数据被修改的形式,然后在 slave 端再对相同的数据进行修改。优点:在 row 模式下,bin-log 中

2022-03-04 16:35:21 1398

转载 为什么要用私钥加签,公钥加密

加签的目的:验证信息的发送方是否正确,信息是否被其他人篡改。之所以用发送方的私钥加签,是因为,即便信息被黑客拦截,黑客修改了信息,但是加签需要用发送方的私钥,黑客没有发送方的私钥,所以也无法生成正确的签名,接收方验签就不用通过。反之如果用接收方的公钥加签,如果信息被黑客拦截,黑客修改了信息,因为接收方的公钥是公开的,黑客就可以重新生成新的签名,替换原有的签名,发送出去,接收方接收到信息,拿自己的公钥校验是通过的,所以接收方无法辨别信息是真正的发送方还是黑客发送过来的,这样的加签不能辨别信息是否被篡改

2022-02-25 09:56:53 2090

原创 【Git】将coding/github/gitee 项目拉取至本地

现在许多公司的项目都是放在coding/github/gitee上的,下面记录一下将项目从coding拉取到本地的操作步骤1.创建一个文件夹,可以取名为coding_work2.进入coding_work文件夹,右键点击鼠标选择 git bash here3.初始化coding_work文件夹输入: git init4.连接至远程仓库(这里以coding为例)输入:git clone 远程仓库项目地址(coding或者github或者gitee上每个项目都会有)类.

2022-02-24 13:42:02 1954

原创 【Liunx】grep操作命令用法总结

最近因为项目更新,需要检测一下有没有测试遗漏的bug,所以频繁的使用了grep命令,接下来对这个命令进行一些总结归纳。1.基础使用grep 搜索内容 文件名示例 1.查询项目错误日志中errors存在的语句(grep 'errors' huijiePmsLog.log) root@VM-0-13-ubuntu:/usr/local/tomcat/systemLog# grep 'errors' huijiePmsLog.log 出错类: (org.codehaus.groovy.g.

2022-02-23 13:49:19 773

原创 【Java】一个String数组,根据数组内的字符串长度进行序排序的二种方法

要求:有一个String数组,根据数组内的字符串长度进行倒序排序不多说直接上代码假设数组为:List<String> listTest1 = Arrays.asList("111", "2", "3333", "44") ;方法一:重写sort接口 List<String> listTest = Arrays.asList("111", "2", "3333", "44") ; listTest.sort(new Comparator<String&gt

2022-02-18 14:49:02 6854

原创 【Java】 详解 JVM 的内存划分

1. Java 虚拟机栈Java 虚拟机栈就是我们之前将内存分为堆区和栈区,这里的栈区就是指的 Java 虚拟机栈。每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链表、方法出口信息等。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。主要用来存储局部变量表。在这个区域会抛出两个异常,如果请求的栈的深度超过了虚拟机允许的最大深度,会抛出 StackOverflowError ,如果无法申请到足够的内存会抛出 OutOfMemoryE...

2022-02-17 11:32:45 381

原创 【Java】一段代码理解static。

老生常谈了,static就是这样一个存在,开发中经常用到,但是也非常容易混淆他的概念,看完以下这段代码,我相信伙伴们可以更深入的了解它。一:static含义1.为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。2.实现某个方法或属性与类而不是对象关联在一起static可以修饰成员变量、成员方法、代码块、内部类、导入包二:示例//这段代码思考一下,最终数除的x值是多少class HasStatic{ private static int x = 10.

2022-02-16 10:36:46 428

转载 【分享】Rabbitmq 整合Springboot(内含手动自动接收确认实例)

前言最近看到一篇Rabbitmq 的文章,写的非常的详细,各个操作已经测试过 都可以实现,入门或者对Rabbitmq 不是那么了解的小伙伴可以看一下,基本满足了日常需求1.RabbitMQ 下载安装链接:RabbitMQ下载与安装(window版)_小阿杰-CSDN博客_rabbitmq下载一、初识MQ  MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和

2022-02-15 13:27:17 377

原创 【Linux】安装nginx及配置(入门)

本文操作环境 centOS 7一、通过yum安装1,将nginx添加到yum repro库中[root@izbp1b498epn4trb75oykez ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2,查看nginx信息[root@cwtp1b498epn4trb75oykms ~]# yum info nginx3,使用yum.

2022-02-15 11:50:52 1122

原创 【Java8 新特性】Java8 新特性浅谈 stream流JAVA实例

1.什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。 数据源流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。和以前的Collection操作不同, Stream操作还有两个基础的特征:Pipelinin..

2022-02-14 11:47:55 115

原创 【SpringBoot】@ResponseStatus注解作用

带有@ResponseStatus注解的异常类会被ResponseStatusExceptionResolver 解析。可以实现自定义的一些异常,同时在页面上进行显示。具体的使用方法如下:1.首先定义一个异常类:@ResponseStatus(value = HttpStatus.FORBIDDEN,reason = "用户名和密码不匹配!")public class UserNameNotMatchPasswordException extends RuntimeException{}

2022-02-09 15:57:54 748

原创 【Linux】自动部署javaweb项目

最近因为工作 版本更新的比较频繁,每次打包好项目后,需要部署tomcat项目,次数多了非常麻烦,这里有个简便的方法,包会 之后发包只需要一句代码即可步骤1.安装使用前需要安装dos2unixlinux中输入命令: yum install dos2unix2.写sh文件#!/bin/bash#使用前需要安装dos2unix:yum install dos2unix,执行dos2unix xxx.sh(格式化文件)import time#(!!!以下路径根据你们自己的项

2022-02-09 15:13:52 704 1

原创 【Linux】自动设置系统日志大小

线上linux遇到一个问题,内存占用过高,一看大部分是系统日志没有清理掉。以下随笔记录一下解决方法1.进入 cd/etc/systemd ,2.cat journald.conf 文件3.添加系统日志最大占用空间内存 完事...

2022-02-09 14:59:32 1046

原创 【Java】 “==”和“equals”的区别随记

对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;quals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals 方法,把它变成了值比较。== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重写了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。两

2022-02-09 14:46:22 131 1

转载 【Java】pageHelper实现分页

如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。——PageHelper官网。后端实现<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.11</version> </depend..

2022-02-09 14:25:24 5594

空空如也

空空如也

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

TA关注的人

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