- 博客(37)
- 资源 (13)
- 收藏
- 关注
原创 Java路径遍历漏洞修复心得
一、路径遍历路径遍历是指应用程序接收了未经合理校验的用户参数用于进行与文件读取查看相关操作,而该参数包含了特殊的字符(例如“..”和“/”),使用了这类特殊字符可以摆脱受保护的限制,越权访问一些受保护的文件、目录或者覆盖敏感数据。本文以JAVA 语言源代码为例,分析路径遍历缺陷及该缺陷产生的原因及修复方法。二、缺陷代码172行因为localFile因为接收参数后未对参数做合理校验,可能会收到../file.text,假定文件路径有效,则可能导致读取了 uploads 父目录下的 file.t
2021-02-01 17:54:46
20173
14
原创 优雅的后端参数验证javax.validation
为什么要用validator javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验 不然我们的代码就像下面这样: @PostMapping("/save/serial") public Object save(@RequestBody UserVO userVO) { String mobile = userVO.getMobile(); //手动逐个 参数校验~ 写法 if (StringU
2020-12-22 10:58:58
1026
1
原创 SpringBoot2整合Mybatis和逆向工程
1.添加pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/m
2020-09-24 11:30:31
408
1
原创 HashMap1.8源码解析
一、HashMap概述 在JDK1.8之前,HashMap1.7采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。下图中代表jdk1.8之前的hashmap结构,左边部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,...
2020-09-17 10:36:11
427
原创 Java基础面试题(下)
1.Collection下的常用子类集合有那一些?有List,Set。List:有序(按添加顺序显示),可重复,set:无序(按大小排序显示),不可重复,map:以键值对方式存储List分别有:ArrayList:是List的主要实现类,ArrayList的底层是数组。线程不安全的。查找快,增删慢(通过首地址+下标获取元素位置,增删要移动某一些元素)”LinkedList:底层是一个双向链表(是一个带头/尾指针的双向链表,)。插入,删除快(增删快因为直接就在对应的位置设置新的元素指向前后
2020-09-16 16:07:36
1162
原创 Java基础面试题(上)
一、&和&&的区别? | 和|| 的区别?1.当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。2.当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算二、final作用? finally finalize区别用于修饰类、属性和方法;被final修饰的类不可以被继承被final修饰的方法不可以被重写被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用.
2020-09-16 12:26:17
230
2
原创 Spring Bean的作用域
在Spring中,bean作用域用于确定哪种类型的bean实例应该从Spring容器中返回给调用者。目前Spring Bean的作用域或者说范围主要有五种。作用域 描述 singleton 在springIoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的默认值。 prototype 每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()。 request 每次HTTP请求都会.
2020-09-02 10:46:28
376
原创 CentOS7安装Elasticsearch 6+Kibana6
1.安装前准备- centos7 +- java 8 +- elastic 6.3.1下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 需要安装jdk8环境喔。2.解压下载文件- tar -zxvf elasticsearch-6.3.1.tar.gz3.进入ES安装目录查看目录结构- bin 可执行的二进制文件的目录- config...
2020-08-28 10:35:35
415
原创 SpringCloud Alibaba Greenwich版本搭建:(十一) Sentinel控制台实现接口限流
1.下载jar包https://github.com/alibaba/Sentinel/releases2.上传liunx或者本地运行[root@elastic1 ~]# java -jar /data/sentinel-dashboard-1.6.2.jar --server.port=80843.访问Sentinel客户端http://192.168.221.150:8087我这里是虚拟机中 本地访问http://localhost:8087用户名和密码都是sentin..
2020-08-27 11:16:35
301
原创 SpringCloud Alibaba Greenwich版本搭建:(十) Nacos连接Mysql数据持久化
在第九章中,Nacos为配置中心,在其中配置的nacos-provider-dev.properties文件是没有做持久化的,如果Nacos重新启动,那么里面的配置文件将不存在了。所以需要数据库来做持久化。1.Nacos目录中Config下的application.properties,添加数据。spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding
2020-08-26 17:06:20
167
原创 SpringCloud Alibaba Greenwich版本搭建:(九) Nacos做为配置中心
1.提供者中添加依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xs
2020-08-26 16:32:56
507
原创 SpringCloud Alibaba Greenwich版本搭建:(八) Nacos做为注册中心
1.下载Nacos:https://github.com/alibaba/nacos/releases2.运行bin目录下的脚本我下载的是zip版本,在liunx可以下载tar版本的。输入http://localhost:8848/nacos/#/login 账号密码默认为nacos3.创建springboot项目<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://..
2020-08-26 15:50:58
617
1
原创 七夕情人节表白HTML前端代码
小伙伴们七夕来了,还是单人吗?赶紧拿着代码去表白试试,说不定能成功呢?小猪在这里祝福有情人终成眷属,喜欢的小伙伴可以点一波关注,就是对我最大的支持喔。先演示一下愿意就放烟火了下载链接:https://download.youkuaiyun.com/download/qq_41085151/12745458...
2020-08-25 10:57:41
11462
6
原创 SpringCloud2.x Greenwich版本搭建:(七) Gateway网关
1.Gateway是什么?Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。Spring Cloud Gateway 作为 S
2020-08-19 11:33:45
499
原创 SpringCloud2.x Greenwich版本搭建:(四) zuul网关
1.Zuul网关?是什么:网关相当于一个网络服务架构的入口,所有网络请求必须通过网关转发到具体的服务。作用:统一管理微服务请求,登录验证,权限控制、负载均衡、路由转发、监控、安全控制黑名单和白名单等区别:网关是对所有服务的请求进行分析过滤,过滤器是对单个服务而言。2.创建Module项目springcloud-zuul<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache
2020-08-18 16:48:04
235
原创 SpringCloud2.x Greenwich版本搭建:(五) Config分布式配置中心
上一篇文章:SpringCould2.x Greenwich版本搭建:(四)使用Zuul网关1.分布式配置中心作用SpringCloud Config 配置中心用来管理各个微服务的配置文件,修改配置文件内容可以实时刷新,不需要重新打包发布项目Spring Cloud Config Server最常见是将配置文件存放方式有3种:(1)本地(2)远程Git仓库(3)局域网数据库我这里使用gitee来实现配置中心2.登录Gitee创建仓库修改仓库中的文件,为了测试confi.
2020-08-18 14:12:17
162
原创 SpringCloud2.x Greenwich版本搭建:(六) Bus消息总线
前提安装rabbitmq1.在config中添加依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https:/..
2020-08-18 12:12:41
189
原创 SpringCould2.x Greenwich版本搭建:(三)使用hystrix熔断器
上一章:SpringCould2.x Greenwich版本搭建:(二)使用Feign调用1.创建Module项目springcould-hystrix<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc
2020-08-17 17:11:10
145
原创 SpringCould2.x Greenwich版本搭建:(二)使用Feign调用
上一篇 :SpringCould2.x Greenwich版本搭建:(一)整合Eureka实现提供者和消费者1.创建Module项目sprincould-feign<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
2020-08-17 17:00:50
193
原创 SpringCould2.x Greenwich版本搭建:(一)整合Eureka实现提供者和消费者
1.创建名称为springcould-2项目<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://.
2020-08-17 16:41:14
242
1
原创 Springboot2整合Dubbo+zookeeper
1.添加pom依赖<!-- springboot版本2.1.5 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependen
2020-08-14 11:00:45
186
原创 Liunx服务器搭建duboo+zookeeper环境
1.下载tar包,前提安装jdk8下载链接:https://download.youkuaiyun.com/download/qq_41085151/127103052.上传到/opt下解压tar -zvxf xxx#修改名称mv zookeeper-3.4.9 zookeeper3.制作开机脚本vim /etc/init.d/zookeeperZK_PATH=/opt/zookeeper #安装路径export JAVA_HOME=/opt/jdk1.8.0_2
2020-08-13 18:03:19
145
原创 Springboot2前后端分离Vue+element-UI实现
1.安装node.js和脚手架等此次省略,不写了,可以自行百度。node -v #查看node.js版本2.使用Node.js创建项目,也可以使用vscode直接创建。3.使用VScode打开项目,添加el-ui点击终端安装4.在src中mian.js中添加el5.在src目录创建api文件夹添加axios6.在src目录下的components下创建login.vue文件和home.vue文件<template>
2020-08-11 18:14:57
821
原创 Redis-cluster5.x集群搭建
1.下载redis5.0.2wget http://download.redis.io/releases/redis-5.0.2.tar.gz #官网下载 tar xzf redis-5.0.2.tar.gz #解压cd redis-5.0.3 yum install gcc #需要gcc来编译make #编译2.进入目录复制redis.conf到/usr/local/cluster-redis复制6个,是为了主从关系3.修改6个redi
2020-08-11 10:33:56
443
原创 你真的对Redis很清楚吗?来看看这些面试题
1.什么是Redis,有何优点作用,为什么效率高?redis是nosql中的一种,把数据存储在内存中的数据库,优点:高性能,读写速度快,支持多种字符,支持事务,和丰富的特性纯内存数据库,非阻塞io,单线程模型,减少上下文切换。使用hash结构。2.Redis相比memcached有哪些优势?redis支持多种数据结构,memcached只能用普通的字符窜redis读写速度比他快,redis支持事务,支持持久化3.Redis是单线程还是多线程?为什么选择单线程?为什么执行速度.
2020-08-10 17:23:47
324
原创 Docker搭建Gitlab丶Centos7版
1.安装启动docker安装:yum -y install docker启动:systemctl start docker开机启动:systemctl enable docker2.拉取镜像docker images #查看镜像文件,没拉取之前是没有任何镜像的docker search gitlab #搜索镜像docker pull beginor/gitlab-ce:11.0.1-ce.0 #拉取镜像版本为beginor/gitlab-ce版本注意:如果下载慢的话
2020-08-10 16:48:28
149
原创 Springboot处理全局异常和自定义异常
1.添加pom <!--springboot2.1.5版本--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency&g
2020-08-04 12:17:43
1025
原创 Springboot整合Log4j2实现
为什么使用log4j2?可以查看性能方面实测,图是网上找的1.添加pom文件 <!--springboot2.1.5版本--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&g..
2020-07-29 14:41:42
394
原创 Springboot2整合线程池@Async异步应用场景
一.为何要使用异步?1.在许多业务场景中,比如你的代码中有3个查询不同数据的方法或者去其他接口需要时间去调用,那么ABC3个接口,不是异步的情况,肯定是需要你执行A完成之后,再执行B,然后再执行C方法。那么用的时长就会很久了。所以使用异步+多线程来实现请求的时候会有3个线程去执行ABC3个方法。那么实际的时间将会缩短。2.@Async有2种返回机制。无返回值类型(调用直接返回,不会在意此方法执行用时,直接返回结果给客户端)有返回值类型(返回类型为Future<T>类型或者他的子类
2020-07-28 12:10:35
1152
原创 本地配置Ngnix实现反向代理
1.Ngnix文件详情#user nobody;worker_processes 1; #工作进程数#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024; #最大连接数}http { include
2020-07-22 17:20:05
508
原创 SpringBoot2整合JWT实现单点登录
1.添加pom依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> <!--
2020-07-16 16:52:10
1438
1
原创 Springboot2整合easypoi实现导入导出、OSS图片导出到Excel
提示这篇文件OSS图片导出到Excel表格是根据,上一篇文章来实现的。 如果不需要导出图片,请忽略关于OSS部分的内容以及工具类。上一篇文章连接:https://blog.youkuaiyun.com/qq_41085151/article/details/1073542631.添加pom依赖 <!--<version>2.1.5.RELEASE</version>springboot版本--> <dependency>
2020-07-16 11:45:35
1650
3
原创 Springboot2整合阿里云OSS实现文件上传、下载、删除、查看
1.阿里云配置2.pom文件 <!--<version>2.1.5.RELEASE</version> springboot版本--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</art
2020-07-15 11:26:08
1705
2
原创 Springboot2整合Rabbitmq消息确认机制、幂等性、重试机制
1.消息确认机制友情提示该文章是跟着上一篇文章继续的,连接:https://blog.youkuaiyun.com/qq_41085151/article/details/107102962问题1:如果在发送消息的时候,消费者出现了异常,那么你监听的消息就会一直循环消费。比如一.提供者:@Componentpublic class HelloProvider{ @Autowired private RabbitTemplate rabbitTemplate1; publi
2020-07-08 16:52:50
1859
2
原创 Springboot2整合RabbitMQ
1.RabbitMQ简介P代表的发送的消息(Message)X代表的交换机(Exchange)红色的代表队列(Queue)C代表着消费者(Consumer)2.RabbitMQ发送消息的流程Routing key:生产者在将消息发送给Exchange的时候,一般会指定一个routing key,来指定这个消息的路由规则,而这个routing key需要与Exchange Type及binding key联合使用才能最终生效。Binding key:...
2020-07-03 17:17:26
643
1
原创 Springboot2整合Mybatisplus实现乐观锁
1.添加pom文件 <!-- <version>2.1.5.RELEASE</version>Springboot版本 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope&
2020-06-22 18:14:04
1110
springboot整合easypoi实现文件导入导出OSS文件上传和下载。OSS图片导出
2020-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人