自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 建造者模式 链式编程 替代setter

链式编程在jdk8中的Stream操作、SpringSecurity、Quartz等场景中均有实现,核心就是赋值之后返回自身它使得属性的赋值变得简便,代码具有层次感,且将创建过程和具体表示相分离,实现解耦步骤1.在主类中创建一个静态内部类 Builder,Builder拥有主类所有的属性2.为主类创建一个private的构造函数,参数为Builder类型,将Builder的属性赋值给主类3.在静态内部类中创建主类属性的赋值方法,返回值是Builder4.Builder内部类创建一个buil.

2020-07-30 10:35:01 332

原创 Java异常处理的十个建议

目录1.尽量使用log打印2.没有打印出具体的Exception,无法更好定位问题3.不要用一个Exception捕捉所有可能的异常4.使用finally关闭流资源或者直接使用try-with-resource5.捕获异常与抛出异常必须是完全匹配,或者捕获异常是抛异常的父类6.捕获到的异常,至少打点日志7.注意异常对你的代码层次结构的侵染(早发现早处理)8.自定义封装异常,不要丢弃原始异常的信息Throwable cause9.运行时异常RuntimeException ,不应该通过catch 的方式来处理

2020-07-29 14:42:52 430

原创 Redis过期策略和内存淘汰策略

Redis过期和淘汰策略三种过期策略定时删除定期删除惰性删除Redis的过期策略Redis的内存淘汰策略三种过期策略定时删除在某个key 设置了过期时间时,创建一个定时器,过期时立即执行对其进行删除的操作优点:定时删除对内存是最友好的,能够保证内存的key一旦过期就能立即从内存中删除缺点:对CPU最不友好,在设置过期键比较多的时候,十分消耗CPU资源,影响服务器的响应时间和吞吐量定期删除redis默认每秒检查10次,是否有过期的key需要删除。但redis不是每次将所有的key检查一次,

2020-07-14 21:37:54 243

原创 linux根目录和常用命令

1.根目录介绍/bin 二进制可执行文件,系统所有用户使用的命令,ls、ps.../sbin 二进制可执行文件,通常由管理员使用,系统维护,ipconfig.../dev 设备文件、终端设备、USB.../etc 大多数配置文件、shell脚本.../home 普通用户存储个人信息/lib 32位函数库,包含支持二进制文件的库文件/lib64 64位库,包含支持二进制文件的库文件/media

2020-07-13 23:20:04 1270

原创 java Exception in thread “main“ java.lang.StackOverflowError 栈内存溢出

java栈内存溢出原因方法递归对象互相引用原因1.每一个方法的执行对应着虚拟机栈中一个栈帧入栈到出栈,若方法中调用了其他方法,那么就继续入栈其它方法,2.当两个对象互相引用时,进行json转换也会无限递归解析,导致StackOverflowError因此方法递归过深或者互相引用就会导致StackOverflowError方法递归原因就是在method1()方法中调用了自身,会无限循环调用public class Demo { public static int count;

2020-07-12 21:05:57 1890

原创 mybatis向mysql中插入数据返回自增id 注解+xml方式

注解和xml介绍注解方式说明使用xml方式说明使用介绍当我们准备向两张有关联的表中(父、子)插入完整数据时,就需要在第一次插入父表数据后获取自增id,之后在子表中关联此id注解方式说明@SelectKey(keyProperty = "id"//对应要返回的实体属性 ,keyColumn = "id"//对应数据库中的自增列名称 ,before = false//在更新语句执行之前返回还是之后返回 ,resultType = Integer.class//和id类型相匹配 ,s

2020-07-10 21:13:33 1068

原创 ERROR TestContextManager:234 - Caught exception while allowing TestExecutionListener [org.springfram

在一次重置电脑之后,idea中进行项目的单元测试出现了如下异常@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-config.xml"})public class UserDaoTest{ @Autowired private UserDao userDao; @Test public void test01(){ System.out..

2020-07-10 20:24:27 3781

原创 win10配置java环境变量 附JDK1.8下载

下载JDK百度网盘分享 - jdk-8u172-windows-x64提取码 pdra安装后配置环境变量默认安装会分别安装JDK和JRE,请记住JDK安装位置,JDK中包含了JRE右键此电脑,点击属性点击高级系统设置点击环境变量在系统变量中点击新建变量名输入:JAVA_HOME变量值输入:安装JDK的目录点击确定若不存在CLASSPATH变量,则再次新建系统变量变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib\dt.ja

2020-07-10 17:37:09 173

原创 Redis 事务 watch实现乐观锁

Redis事务介绍简介相关命令Redis事务不保证原子性部分失败的情况全部失败的情况Watch和unWatch实现乐观锁简介Redis 事务就是一组命令的集合,在事务提交时一次性顺序执行,其他客户端提交的命令不会插入到事务执行队列中。一次性、顺序性、排他性Redis事务没有隔离级别,事务中的命令被加入执行队列时,并不会实际执行,只有提交了事务才会执行,此时事务内的查询无法看到之前事务内的更新相关命令watch key1 key2 … : 监视一或多个key,如果在事务提交之前,被监视的

2020-07-10 14:46:46 655

原创 Redis中String、List、Hash、Set、Zset、Geospatial、Bitmap类型使用

Redis各种数据类型使用keys *flushdbflushallselect index==String==set key valueexists keydel keyget keyexpire key secondsttl keytype keyappend key valuestrlen keyincr keydecr keyincrby key incrementdecrby key decrementgetrange key start endsetrange key offset values

2020-07-09 17:00:29 244

原创 idea启动项目报错Plugin Error Problems found loading plugins:

IDEA: Plugin Error Problems found loading plugins原因解决正确使用MySQL工具示例原因idea插件在使用过程中出现了异常,并被记录为不可用解决找到idea总配置文件,在安装目录下的bin文件夹中在总配置文件中找到个人配置的目录默认个人配置目录如下参考disabled_plugins.txt文本中会记录不可用的插件,删除或清空文本内容,重新启动idea即可正确使用MySQL工具示例Database中添加MySQ

2020-07-07 13:12:06 1338

原创 巨详细分析单例模式!禁止套娃?

单例模式饿汉模式-多线程安全懒汉模式-多线程不安全懒汉模式-多线程安全懒汉模式-双重校验锁(DCL,即 double-checked locking)-多线程安全静态内部类-多线程安全枚举-多线程安全且禁止反射强行使用反射破环枚举单例反射在双重校验锁创建下多个对象双重校验锁禁止反射双重校验锁不实例化对象直接反射使用标志防止双重校验锁下多次反射套娃永无止境Java最简单的设计模式之一?属于创建型模式,指一个类负责创建自己唯一的一个对象,对外提供一个的可以直接访问该对象的方式,而不需要实例化该类对象。

2020-07-06 00:22:08 291

原创 SpringBoot集成Swagger UI从零搭建 + 配置 + 使用说明

导航Swagger介绍Swagger图解SpringBoot集成Swagger UI新建SpringBoot项目整合Swagger配置Swagger信息配置Swagger扫描路径根据项目环境决定是否启用Swagger多人协作,设置不同分组的SwaggerSwagger 实体类注解@ApiModel() 用于类@ApiModelProperty() 用于方法,字段Swagger接口注解@Api()用于类@ApiOperation()用于方法@ApiIgnore() 用于类或方法上,可以不被Swagger显示

2020-07-05 20:18:24 559

原创 java+jna+DD实现全局键鼠驱动级模拟

java中的Robot类中自带了模拟鼠标和键盘的相关事件,但是这样的模拟带有一定的局限性,那么如何实现功能更加强大的模拟呢?运行环境IDEA+JDK1.8(64位)+Maven请以管理员身份运行IDEA,否则程序会运行失败准备工作所需jna依赖(或者相应jar包):maven依赖下载地址<dependencies> <dependency> <groupId>net.java.dev.jna</groupId>

2020-07-04 19:10:54 4239 13

原创 Spring中Bean的作用域介绍

Spring中Bean的作用域详解Bean简介Bean作用域Singleton介绍Prototype介绍Request介绍Session介绍Bean简介在Spring中,组成应用程序的主体、由SpringIoC容器所管理的对象,被称之为bean。简单来讲,也就是由IoC容器进行初始化、装配、管理(生命周期和依赖关系)的对象。Bean作用域其中request、session的作用域仅在基于web的SpringContext环境中使用。Singleton介绍Spring缺省作用域,Singleton

2020-07-04 16:21:45 325

空空如也

空空如也

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

TA关注的人

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