自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 抽象工厂模式:其他工厂的工厂

设计模式

2022-08-07 00:29:57 121

原创 工厂模式设计思路

工厂设计模式

2022-08-06 23:58:25 60

原创 依赖导致原则改善代码

设计模式设计原理。

2022-08-06 18:21:37 43

原创 设计模式设计理念:接口隔离

设计模式设计原则

2022-08-06 02:23:58 21

原创 DateTimeFormat放到@RequestBody下是无效的

springBoot 时间注解使用。

2022-06-24 11:29:05 282

转载 Git worktree 使用笔记

gitworktree 本地仓库的多个分支在对应的文件夹内管理,能够减少很多操作,便捷高效~git worktree add ../Easinote-release -b release origin/releasegit worktree add <新路径> -b <新分支名> <源分支名>二 语法速览 最简单的写法:git worktree add <新路径> 将基于当前分支,新建一个 worktree 目录,新的分支名就是新建目录

2022-04-17 15:42:14 211

原创 为什么Maven的很多命令前面都有-D参数?

之前看到Maven的很多命令前面都有一个-D参数,一直不知道由来。今天看Maven实战的时候恰好看到,对于-D参数来讲。用法: -DpropertyName=propertyValue作用:对插件的目标参数进行配置实例,例如大家经常使用的maven在执行本地安装命令install的时候跳过单元测试为 mvn install -Dmaven.test.skip=true。参数-D是Java自带的,其功能是设置Java的系统属性,Maven只是对这个参数进行了重用。那么就可以在准备插件的时候检查

2022-04-17 11:34:08 1101 2

原创 IDEA插件系列(13):Key promoter插件——快捷键显示提示

1. 插件介绍菜单和工具栏按钮的鼠标单击将启动快捷方式显示。2. 安装方式第一种方式是使用IDEA下载安装第二种方式是使用离线插件进行安装插件下载地址:http://plugins.jetbrains.com/plugin/4455-key-promoter/3. 使用方法安装成功后,只要是使用有快捷键的操作,都会有提示。...

2022-03-28 09:50:44 3216

原创 定义变量的时候为什么用的是Integer而不是int

Integer 允许为null值,int默认0,数据库里面如果有个字段没有值可能默认值为null,用Integer比较合适。

2022-03-18 11:15:26 795

原创 Tomcat部署时war和war exploded区别以及平时踩得坑

war和war exploded的区别在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况:是选择war还是war exploded 这里首先看一下他们两个的区别:war模式:将WEB工程以包的形式上传到服务器 ;war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;12(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;(2)war exploded模式是直接把文件夹、jsp页面 、classes.

2022-03-14 09:24:47 2003

原创 Intellij IDEA 编译报错,忽略错误,运行

1.如何设置Intellij IDEA忽略部分类编译错误?2.为什么要在Intellij IDEA中使用Eclipse编译器?3.为什么Intellij IDEA设置忽略部分类编译错误?有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行。设置Intellij IDEA忽略部分类编译错误设置很简单,只需要两步即可。1、设置Java编译器如上图所示...

2022-03-08 18:34:31 4011

原创 git的merge冲突方法

场景1:accept yours:代表以自己的为准;场景2: accept theris:代表以更新下来的文件为准;场景3:merge:代表手动合并,Merge Revisions 工作台使用1.2序号表示上下冲突点6合并没有冲突的地方》》接收左边的文件X 放弃左边的文件二: idea 单个文件merge操作方法...

2022-02-23 16:45:07 393

原创 Git各种错误操作撤销的方法

场景1:Git Add了一个错误文件git reset --mixed 仅取消 git add 带来的效果。步骤1步骤2场景2: 本地 commit,未 push 到远程。回退到指定到 commit号git reset --hard commitId, 这个命令 回退到指定的commit,并且不会保留本地尚未提交的修改。所以一定要慎重使用。取消commit时,更安全的操作: revert 更安全的操作, 使用 git revertgit revert commitId

2022-02-23 16:06:53 1255 1

转载 IDEA GIT 操作

工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七:小张获取小袁提交的分支场景八:小张把分支合并到主干下面来看以上各场景在IDEA中对应的操作。场

2022-02-23 14:13:42 136

原创 多线程14:三大不安全案例

案例一:火车站买票思路:1.首先要有一个买票的类BuyTicket多线程要实现Runnable接口,重写run()里面是买票,2.买票就需要有票,定义一个票的变量 private int ticketNums = 10;3.写一个买票的方法buy():首先你得判断是否有票,if(ticketNums<=0),就停止return;4.否则就买票,直接ticketNums--就可以了。谁+拿到+第几张票5.然后需要一个循环,在while方法里面写,定义一个外部标志位,然后调用方

2022-02-23 13:53:19 1970

原创 mysql数据库什么情况下会锁表_mysql数据库锁的产生原因及解决办法

数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并 发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严 重影响应用的正常执行。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁

2022-02-23 10:58:48 4870

原创 java对mysql查询特殊字符转义

在使用mysql的like查询用户时,当用户姓名中含有" ’ “,”%","_",,""等特殊符号时,按以往的查询方式,并不能得出想要的结果。查阅资料得知:在遇到这些特殊字符时,需要对字符进行转义。1':用于包裹搜索条件,需转为\';%:用于代替任意数目的任意字符,需转换为\%;_:用于代替一个任意字符,需转换为\_;\:转义符号,需转换为\\\\。1234以上特殊符号转义代码如下public class RequstUtils { /** * speci...

2022-02-23 10:32:29 1333

原创 mysql 特殊字符需要转义

addslashes(string)这些预定义字符是:单引号 (')双引号 (")反斜杠 (\)NULL

2022-02-23 10:24:24 492

原创 MySQL查询条件中字符串包含空格的问题

原因如果字段是char或varchar类型,那么在字符串比较的时候MySQL使用PADSPACE校对规则,会忽略字段末尾的空格字符,若想做到精确匹配可以使用下面几种方法:方法1:使用like语句;方法2:使用binary类型,例如,select binary 'a' = 'a '方法3:再添加一个length()条件,例如,select col from table where col = 'a ' and LENGTH(col) = LENGTH('a ')...

2022-02-23 10:13:29 2822

转载 关于并行流parallelStream的用法的一些问题

前言今天逛论坛关于parallelStream并行流一些内容,发现论坛里关于这方面的问题,他们给出的代码是这样的@Testpublic void testStream() { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10000; i++) { list.add(i); } System.out.println(list.size()); ...

2022-02-15 10:53:39 178

转载 Java Enum ordinal()方法与示例

枚举类ordinal()方法 ordinal()方法在java.lang包中可用。 ordinal()方法用于返回此枚举常量的位置,该位置取决于其枚举声明中定义的内容,并且枚举常量的起始元素的位置从0开始。 ordinal()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。 ordinal()方法是最终方法,它不会在子类中重写。 返回枚举常量的位置时,此方法不会引发异常。 语法:publicfinal...

2022-02-15 10:32:41 3120

转载 StringUtils.isNotEmpty和StringUtils.isNotBlank的区别

/***StringUtils.isNotEmpty:判断某字符串是否为空*///StringUtils.isNotEmpty(str)等价于str != null && str.length > 0StringUtils.isNotEmpty(null) = false;StringUtils.isNotEmpty("") = false;StringUtils.isNotEmpty(" ") = true; //在StringUtils中空格作非空处理Strin...

2022-02-15 10:16:17 435

转载 BigDecimal中divide方法注意问题

BigDecimal中divide方法抛异常:Non-terminating decimal expansion; no exact representable decimal result在使用BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3));时抛异常:Non-terminating decimal expansion; no exact representable decimal result原来是在做除法

2022-02-15 10:06:20 253

转载 MYSQL中NULL空值与空字符串区别详解及代码

NULL是指没有值而''则表示值是存在的,只不过是长度为零下面我们实际建立一个表来进行测试和区分。sqlCREATE TABLE `tb_test` ( `name` varchar(255) DEFAULT NULL, `value` varchar(255) DEFAULT NULL, `test` char(0) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;插入表中几条数据:sqlinsert into

2022-02-07 15:39:51 263

原创 错误Invalid bound statement(not found):xxx问题解决办法

网上已经有很多文章说明可能导致这个报错的原因,无非是以下几种:1.检查xml文件的namespace是否正确2.Mapper.java的方法在Mapper.xml中没有,然后执行Mapper的方法会报此3.xxxMapper.java的方法返回值是List,而select元素没有正确配置ResultMap,或者只配置ResultType4.如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决5.看下mapper的XML配置路径是否正确如果全部检查了一遍

2022-01-26 09:41:37 343

原创 java 符号>>,>>>与<<

>> :右移,正数右移,高位补0,负数右移,高位补1>>>:右移,高位补0,不区分正数负数<<:左移,低位补0,不区分正数负数注:1.左移右移符号位也一起移动 2.高位低位补1/0是指:移动完后空出来的位全部补1/0 3.不存在<<<这个运算符对于正数来说,>>与>>>是一样的,均为右移高位补0对于负数来说,>>与>>>是不一样的,>>右...

2022-01-06 11:33:41 318

转载 JDK1.8 结合Comparator、skip、limit一个常规的业务场景

话不多说,这里有一个常规的业务场景,我想根据从前端传来的几个字段,比如需要排序的字段、第几页、一页显示几条从后台取出对应的数据。如果说按照一般的做法,那肯定是在sql里面操作,取到对应的字段,我这里使用jdk1.8的语法比如一个实体类public class User{........//这里省略实体类里面的字段,因为这个例子暂时不需要出现它们假设我先从数据库里面查出来一个数据集合List<User> list=..........;//从数据库查出假设根据字段排序,那这要.

2022-01-06 10:43:42 145

转载 工具&MAven|Maven环境隔离应用场景及实战

coding原来的资源结构改造过程一、在resource下分别创建目录如下:二、修改pom.xml文件根据创建的目录结构添加如下的节点<profiles> <profile> <id>dev</id><!--执行打包命令时将使用此处的id进行定位--> <properties> <env>dev</env>&..

2022-01-04 11:15:30 75

转载 IDEA中执行MAVEN命令打jar包

SpringBoot Jar包打包1.工程POM配置packaging为jar。<packaging>jar</packaging>如下图所示:2.增加MAVEN运行配置添加MAVEN配置,Working directory选择要打包的项目最上级,Command line 如下。3.选择该配置,运行即可。...

2022-01-04 11:06:01 194

转载 mvnd 构建工具

周末被 maven-mvnd 刷屏了,于是我也下载了一个 mvnd 体验了一把。虽然测试的数据都是基于我本地项目,不具备普适性和权威性,但也足以说明问题。它的测试结果远远超出我的预期,下面一起来看。什么是 mvnd?mvnd 是 Maven Daemon 的缩写 ,翻译成中文就是 Maven 守护进程。mvnd 是 apache/maven 的一个子项目,它并不是一个全新的构建工具,而是对 maven 的扩展。它内置了 maven,其实现原理是构建了一个或者多个 maven 守护进程来执行构建服务

2022-01-04 10:56:14 597 1

转载 MySQL中删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断SELECT *FROM peopleWHERE peopleId IN ( SELECT peopleId FROM people GROUP BY peopleId...

2021-11-06 09:20:52 1529

转载 mysql 慢sql优化

MySQL优化常见Extra分析——慢查询优化数据准备:create table user ( id int primary key, name varchar(20), sex varchar(5), index(name))engine=innodb;数据说明:用户表:id主键索引,name普通索引(非唯一),sex无索引;四行记录:其中name普通索引存在重复记录lisi;一、【Using where】实验语句:explain

2021-10-11 17:13:56 145

原创 mysql 查询数据字段末尾存在空格,用“=“也会命中

一、现象CREATE TABLE `user_info` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键自增ID', `user_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '名字', PRIMARY KEY (`id`), KEY `idx_user_name` (`user_name`)) ENGINE=InnoDB DEFAULT CHARSET=ut...

2021-09-14 10:57:33 767

原创 @Transactional注解事务失效的七种原因分析

@Transactional是一种基于注解管理事务的方式,spring通过动态代理的方式为目标方法实现事务管理的增强。@Transactional使用起来方便,但也需要注意引起@Transactional失效的场景,本文总结了七种情况,下面进行逐一分析。1、异常被捕获后没有抛出当异常被捕获后,并且没有再抛出,那么deleteUserA是不会回滚的。@Transactionalpublic void deleteUser() { userMapper.deleteUserA();...

2021-08-26 10:20:51 335

原创 left join on and 与 left join on where的区别

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。假设有两张表:表1 tab1:id size1 10...

2021-08-24 09:12:32 60

转载 SpringMVC Controller层的单元测试

Getting Ready测试相关Mavendependency如下:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.0.3.RELEASE</version> <scope>test&lt...

2021-08-11 10:31:07 210

原创 解决Error running ‘HelloControllerTest.testRedis‘: Command line is too long

一。问题描述:打开Idea运行java项目时出现以下错误:Error running ‘HelloControllerTest.testRedis’: Command line is too long. Shorten command line for HelloControllerTest.testRedis or also for JUnit default configuration?二。解决办法:1.打开Idea,在右上角项目启动栏找到Edit Configuration:2.

2021-08-10 16:32:46 458

原创 xxl-job 如何获取参数 / 设置处理结果

@XxlJob("initDate")public void syncHolidayFrom() {String param = XxlJobHelper.getJobParam(); //执行参数final String msg = "syncHolidayFrom enter.... param:" + param;log.info(msg);XxlJobHelper.log(msg);boole...

2021-07-29 11:25:14 4601

原创 SpringBootTest接口说明

@SpringBootTest注解中,给出了webEnvironment参数指定了web的environment,该参数的值一共有四个可选值:MOCK:此值为默认值,该类型提供一个mock环境,可以和@AutoConfigureMockMvc或@AutoConfigureWebTestClient搭配使用,开启Mock相关的功能。注意此时内嵌的服务(servlet容器)并没有真正启动,也不会监听web服务端口。 RANDOM_PORT:启动一个真实的web服务,监听一个随机端口。 DEFINED_P

2021-07-28 10:01:27 237

原创 xxl_job执行器为空

1.xxl-rpc remoting error(protocol = http host = null), for url :解决:1.查看调拨日志模块,看调度备注一栏mes:信息列如果提示OnLine执行器列为空:点击执行器管理,并且机器地址没配置,这时需要配置自己的端口地址例如本地机器为 http://127.0.0.1:99992.如果OnLine机器地址为查看:看机器地址是否与xxl_job注册的地址不一致。...

2021-07-26 09:32:01 2251

空空如也

空空如也

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

TA关注的人

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