自定义博客皮肤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)
  • 收藏
  • 关注

原创 Java如何正确比较两个浮点数之间的大小

可以使用差值范围和BigDecimal对象这两种方法来对浮点数进行比较

2022-04-19 18:00:22 4725 1

转载 e.printStackTrace不建议使用

目录 一、含义 二、不建议使用 e.printStackTrace() 三、建议使用 logger.error();     一、含义 catch(Exception e) {       e.printStackTrace(); }         .........

2022-02-08 17:03:21 3290

原创 Vue下载页面为PDF和图片格式

一、PDF1、安装html2canvas和jspdfnpm install --save html2canvasnpm install --save jspdf2、创建生成PDF的js文件import html2Canvas from 'html2canvas'import JsPDF from 'jspdf'export default{ install (Vue, options) { //id:根据id作为生成PDF的内容,title:生成文件的名称,调用时直

2022-01-25 10:11:27 827

原创 解决MybatisPlus查询实体类存在非数据库字段报错问题

在非数据库字段上加上@TableField(exist = false),这样MybatisPlus就不会对该字段进行映射

2022-01-21 16:33:07 2260

原创 Spring源码解析(一)下载及编译(版本5.2.x)

https://spring.io/projects/spring-framework点击切换到需要下载的版本后,点击code中的下载压缩包进行下载GitHub中提供构建与编译的方法,上面的页面往下拉点击Builder from Source进入构建文档进入文档后,里面会说明构建需要的环境以及git的下载方法与源码的导入方法,往下划可以发现有两种的导入方式,这里选择idea进入导入步骤:第一步需要使用gradlew预编译,Spring程序是通过grale进行编译的,源码中自带了gradlew,可以远程gra

2022-01-09 17:30:32 918 1

原创 解决vscode终端内无法使用node命令问题

解决方案一、1、关闭vscode,找到vscode运行程序2、右键属性,在兼容性那一栏勾选以管理员身份运行此程序并应用3、测试是否解决解决方案二、当完成上面的操作后还没有出现版本号,并且满足前提条件,将电脑重启前提:1.确定node.js是否安装成功2.使用cmd能看到版本号......

2021-10-24 23:01:52 4051

原创 aliyun-java-vod-upload引入失败解决

失败原因:阿里并未将当前jar包开源,要自行去官网下载,并安装进maven库中下载安装jar包下载地址:https://help.aliyun.com/document_detail/51992.html#title-mbq-hhb-gy2完成下载后解压进lib目录,找到aliyun-java-vod-upload-1.4.14.jar将 jar 包复制到Maven的 bin 目录下全选地址栏输入cmd,打开命令行界面输入命令:mvn install:i......

2021-10-22 20:02:48 4304 2

原创 Resolved [io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported

异常信息:Resolved [io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported.]原因:使用了parseClaimsJwt()方法验证token,parseClaimsJwt() 方法是验证没有进行签名的token,签名的token应该使用parseClaimsJws() 方法验证解决:使用parseClaimsJws() 方法验证token......

2021-10-20 17:29:13 567

原创 Linux下安装nginx

一、安装pcre1.1、联网下载pcre压缩文件wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz1.2、解压压缩文件使用命令: tar -xvf pcre-8.37.tar.gz解压后:1.3、执行./configure命令进入pcre-8.37目录,然后执行./configure命令[root@localhost pcre-8.37]# ./configure

2021-10-09 00:44:36 125

原创 Redis基本命令及API操作

一、Redis基本命令1.1、关于键(key)的操作keys *:查看当前库所有key (匹配:keys *1)exists key:判断某个key是否存在type key:查看你的key是什么类型del key:删除指定的key数据unlink key:根据value选择非阻塞删除(仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。)expire key 10:10秒钟:为给定的key设置过期时间ttl key:查看还有多少秒过期,-1表示永不过期,-2表..

2021-10-04 14:19:52 292

原创 Linux下的Redis安装

一、下载redis的安装包官网地址:https://redis.io/二、将安装包传入到Linux系统下传入操作需要使用Xshell和Xftp2.1、下载Xshell和Xftp免费版下载地址:https://www.netsarang.com/zh/free-for-home-school/填入姓名和邮件地址,选上两者,就可点击下载,然后它就会将这两个的下载链接发送在你填入的邮箱内,可点击邮件上的下载地址进行下载2.2、传入安装包打开xshell连接上Linux系..

2021-09-29 10:20:58 254

原创 SpringBoot集成Swagger3

@Api("美容管理的接口文档")@RestController@RequestMapping("/user")public class UserController { @Autowired private UserService userService; @ApiOperation("登录") @PostMapping("/login") public Result login(@RequestBody LoginReq user){ .

2021-09-28 22:08:10 9940 5

原创 win10环境下的RabbitMQ安装

一、下载并安装erlang1.1、下载并安装RabbitMQ服务端代码是使用Erlang语言编写的,所以安装RabbitMQ之前需要安装erlang下载地址:https://www.erlang.org/downloads选择对应的安装文件进行下载,下载后点击下载好的应用程序,一直next然后finish配置环境变量1.2、配置环境变量打开环境变量步骤打开此电脑,空白处右键进入控制面板,点击高级系统设置进入系统属性,点击环境变量1.2.1、新建系统环境变量变量名:

2021-09-19 18:08:54 521

原创 解决使用IDEA自带的RestClient中post请求参数传递乱码问题

将Request Body中默认选择的Empty改成Text

2021-09-14 14:04:05 764

原创 SpringSecurity实现自定义登录成功和登录失败处理器

实现:自定义处理器返回JSON数据,不进行页面跳转一、自定义返回JSON数据类自定义返回结果类@Data@NoArgsConstructor@AllArgsConstructorpublic class Result<T> { /** * 状态码 */ private String code; /** * 状态信息 */ private String message; /** *

2021-09-12 21:36:22 1190

原创 SpringSecurity实现记住我

一、实现原理当浏览器登录认证成功后,RememberMeService会加密一串Token传给浏览器,存入cookie中,再写入数据库,下一次浏览器访问时,RememberMeAuthenticationFilter就会读取cookie中的Token,由RememberMeService从数据库查找对应的Token来进行比较,相同则自动登录二、实现代码2.1、配置类:注入数据源,配置操作数据对象注:如果没有创建表,第一次运行使用setCreateTableOnStartup这个方法自.

2021-09-12 09:12:40 381

原创 SpringSecurity实现自定义登录页面

接着自定义用户名与密码后:https://blog.csdn.net/hjjjjjjj_/article/details/120235512一、先创建登录页面<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>登录页面</title></head><body><form action="/

2021-09-11 16:41:07 2428

原创 SpringSecurity认证——设置用户名与密码

一、第一种:配置文件spring.security.user.name=adminspring.security.user.password=123456二、第二种:配置类@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth)

2021-09-11 15:28:47 2383

原创 Stringboot实现自定义starter

一、创建autoconfigure项目由spring-boot-starter可以发现,里面引入了一个spring-boot-autoconfigure的依赖,而这个依赖项目中都是已经写好的配置,所以我们自定义starter需要先创建一个autoconfigure来写配置先删除不需要的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr

2021-09-11 09:11:05 101

原创 SpringBoot之Actuator监控

一、引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>二、监控配置management: endpoints: enabled

2021-09-10 16:24:58 248

原创 SpringBoot之HelloWord

一、导入依赖新建一个Maven项目,导入SpringBoot的父工程和web项目的依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version></parent>.

2021-09-08 21:25:16 115

原创 SpringBoot整合Mybatis

一、导入依赖导入整合的依赖:mybatis-spring-boot-starterhttps://github.com/mybatis<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version&gt

2021-09-08 11:51:24 49

原创 win10下的minio安装与启动

一、服务端的安装与启动1. 安装官方下载地址:http://www.minio.org.cn/download.shtml#/windows首先进入官方下载地址点击下载minio的服务端和客户端,minio并不自带客户端2. 启动使用该指令启动minio.exe server E:\minio2.1、解决警告出现警告临时设置端口set MINIO_ROOT_USER=adminset MINIO_ROOT_PASSWORD=12345678minio.exe server E

2021-08-18 17:11:49 11262 3

原创 G1垃圾收集器详解

内存模型G1是基于Region的堆内存布局实现的,把连续的Java堆划分为多个大小相等的独立区域(Region),每一个Region都可以根据需要,扮演新生代的Eden空间,Survivor空间,或者老年代空间。收集器能够对扮演不同角色的Region采用不同的策略去处理,这样可以使不同状态的对象都能获取很好的收集效果Region中存在特殊的Humongous区域,用来存储大对象。G1认为只要大小超过了Region容量一半的对象即可判定为大对象,G1的大多数行为都把Humongous Region作为老年

2021-06-27 14:28:00 280

原创 JVM运行时数据区域

运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用于线程的启动和结束而建立和销毁Java虚拟机所管理的内存包括以下几个运行时数据区域程序计时器程序计数器是一块较小的内存空间,它可以当作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下调需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、

2021-06-27 10:31:21 140

原创 JVM垃圾收集器之CMS

简介CMS(Concurrent Mark Sweep)收集器是以获取最短回收停顿时间为目标,适合Java应用集中在互联网网站或者基于浏览器的B/S系统的服务端上。是基于标记-清除算法实现的。运行过程整个过程分为四个步骤:初始标记并发标记重新标记并发清除其中初始标记、重新标记这两个步骤需要“Stop The World”。初始标记仅仅只是标记一下GC Roots能直接引用到的对象,速度很快;并发标记阶段就是GC Roots的直接关联对象开始遍历整个对象图的过程,这个过程耗时较长,不需要停

2021-06-24 17:07:17 84

原创 HotSpot的算法细节实现

一、根节点枚举我们可以通过可达性算法判断对象是否死亡,可达性算法的思路是GC Root集合的引用,而固定可作为GC Roots的节点主要在全局性的引用与执行上下文中,现在Java方法区的大小就常有数百上千兆,里面的类、常量等更是恒河沙数,如果逐个检查以这里为起源的引用肯定要消耗不少时间。注意:根节点枚举必须暂停用户线程OoPMap当用户线程停顿下来之后,其实并不需要一个不漏地检查完所有执行上下文和全局的引用位置,一旦类加载动作完成,HotSpot就会把对象内什么偏移量上是什么类型的数据计算出来,

2021-06-24 10:03:25 172

原创 垃圾收集算法

垃圾收集算法使用垃圾收集,首先需要了解Java中的哪些东西属于垃圾从如何判定对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接垃圾收集”。因为引用计数式垃圾收集算法在主流Java虚拟机中均为涉及,所以以下算法均属于追踪式垃圾收集的范畴一、分代收集理论当前商业虚拟机的垃圾收集器,大多都遵循了“分代收集”的理论进行设计,它建立在两个分代假说之上:弱分

2021-06-21 18:27:01 81

原创 jvm如何判断对象是否死亡?

一、对垃圾收集的思考垃圾收集并不是Java语言的伴生产物,实际上,垃圾收集的历史远远比Java久远,在1960年诞生于麻省理工的Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言。当Lisp还是胚胎时期时,其作者John McCarthy就思考过垃圾收集需要完成的三件事情:哪些内存需要回收?什么时候回收?如何回收虽然今天的内存动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,但当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须

2021-06-17 11:27:53 269

原创 NIO之ByteBuffer

ByteBufferByteBuffer的结构ByteBuffer的底层其实就是一个字节数组,它有以下重要属性capacity:缓冲区的容量position:读写数据的索引limit:读写入数据的限制ByteBuffer有两种模式:写模式和读模式,当ByteBuffer被创建后,默认是为写模式如下图:这是ByteBuffer刚被创建时的状态,在写模式下,position是写入的索引位置,limit等于容量这是写入了4个字节后的状态,这里可以看到position的索引是4,表示下一次

2021-05-21 18:55:07 395 1

原创 Spring MVC文件上传与多文件上传

文件上传客户端所需的三要素:表单项type=“file”表单的提交方式是post表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”这里的“multipart/form-data”属性值表示该表单使用multipart请求提交一、multipart请求传统的表单提交enctype使用的是默认的属性值“application/x-www-form-urlencoded”,表单的正文内容格式是:key=value&key=value&am

2021-05-12 20:32:13 1160

原创 next()之后使用nextLine()读取不了数据问题

next()之后使用nextLine()读取不了数据问题举个例子读取控制台输入的学生名字与对应的各科成绩public class Demo6 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); System.out.println("请输入学生的名字"); String str = scanner

2021-04-21 20:44:45 290

原创 Spring 自动装配

Spring 自动装配Spring实现自动装配的方式有两种:xml文件和注解方式一:使用xml文件实现自动装配需要在bean标签中加入autowire属性autowire属性的5种装配方式: - no:默认装配方式,需要手动通过ref属性设定与bean的依赖关系 - byName:根据与自己对象set方法后面的值对应的id名进行自动装配 - byType:根据与和自己对象属性类型相同的bean进行自动装配 - constructor:根据构造器中属性类型相同的bean进行自动装配 - de

2021-04-14 18:22:05 59

原创 IOC创建对象的方式

IOC创建对象的方式创建对象的方式有两种:无参构造和有参构造一、当使用无参构造创建对象时:使用默认的方式将类注册进Spring<!-- id:获取该类对象的名字 class:该类的路径 property:设置变量名的值 name:变量名 value:该变量名的值--><bean id="Hello" class="com.spring.pojo.Hello"> <property name="str" value="Spring"></p

2021-04-10 20:17:50 323

空空如也

空空如也

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

TA关注的人

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