<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhl704792104</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhl704792104]]></copyright><item><title><![CDATA[使用sqlmap进行SQL注入检测]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/100007894</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/100007894</guid><author>zhl704792104</author><pubDate>Thu, 22 Aug 2019 10:09:47 +0800</pubDate><description><![CDATA[最近公司项目被扫描出有SQL注入的漏洞,通过百度之后,决定使用sqlmap进行SQL注入的检测。这里仅仅是记录一下注入检测的步骤。

检测前准备

sqlmap是一个python编写的工具,因此我们首先要进行python环境的搭建,然后再从sqlmap官网下载最新版本。

检测步骤

查看需要检测的注入点

首先我们需要访问自己的项目,找到一个需要检测的url,这个url需要对应后台的处理,这个u...]]></description><category></category></item><item><title><![CDATA[Java随笔（六）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/88416308</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/88416308</guid><author>zhl704792104</author><pubDate>Tue, 26 Mar 2019 13:36:31 +0800</pubDate><description><![CDATA[与之前写的Java随笔一样,此篇博客主要是用来记录我之前存放在本地的Word文档中的一些Java的自身理解,由于水平有限所以可能只适合自己加深理解与记忆。

Java中大文件相关的读写

RandomAccessFile

如下,就是一个简单的使用RandomAccessFile实现的，将文件复制到另外地方。


import java.io.IOException;
import java.io...]]></description><category></category></item><item><title><![CDATA[Java随笔（五）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/88050768</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/88050768</guid><author>zhl704792104</author><pubDate>Fri, 01 Mar 2019 11:15:54 +0800</pubDate><description><![CDATA[与之前写的Java随笔一样,此篇博客主要是用来记录我之前存放在本地的Word文档中的一些Java的自身理解,由于水平有限所以可能只适合自己加深理解与记忆。

目录

使用接口的类的动态代理实现

未使用接口的类的动态代理实现

使用Cglib实现不同方法进行不同代理

本篇博客中,主要是介绍动态代理的两种方式。

动态代理的实现方式，我学习了两种,一种是基于java.lang.reflect.In...]]></description><category></category></item><item><title><![CDATA[Java随笔（四）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/88049111</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/88049111</guid><author>zhl704792104</author><pubDate>Fri, 01 Mar 2019 10:36:51 +0800</pubDate><description><![CDATA[与之前写的Java随笔一样,此篇博客主要是用来记录我之前存放在本地的Word文档中的一些Java的自身理解,由于水平有限所以可能只适合自己加深理解与记忆。

目录



单例模式Java实现

普通单例模式

饿汉单例模式

懒汉单例模式

饿汉单例模式和懒汉单例模式比较

延迟加载单例模式

原型模式Java实现

浅复制

深度复制

多线程相关

未加同步导致问题演示

Synchron...]]></description><category></category></item><item><title><![CDATA[记录使用Java的Runtime与Process后台调用ffmpeg转换文件出现的问题]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/87972160</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/87972160</guid><author>zhl704792104</author><pubDate>Wed, 27 Feb 2019 14:35:18 +0800</pubDate><description><![CDATA[在工作中,有用到在后台用ffmpeg转换文件格式，然后前台收到成功信息之后,访问文件出现错误的问题，后来发现是因为在Action中调用转换文件的时候，传递给前台处理结果,其实文件还没转换完成。

这时候可以使用process.waitfor（）让当前线程等子线程（执行控制台命令命令的线程）结束之后再向下执行。或者可以使用proce.getErrorStream 然后输出这个流的形式 来让文件转换完...]]></description><category></category></item><item><title><![CDATA[Java随笔（三）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/87970857</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/87970857</guid><author>zhl704792104</author><pubDate>Wed, 27 Feb 2019 14:26:01 +0800</pubDate><description><![CDATA[与之前写的Java随笔一样,此篇博客主要是用来记录我之前存放在本地的Word文档中的一些Java的自身理解,由于水平有限所以可能只适合自己加深理解与记忆。

目录



Java中的类加载器

使用Callable+Future获取多线程执行结果

ConcurrentHashMap

BlockingQueue

使用LRU的LinkedHashMap

java中强软弱虚四种引用

强引用
...]]></description><category></category></item><item><title><![CDATA[Java随笔（二）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/87779077</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/87779077</guid><author>zhl704792104</author><pubDate>Wed, 20 Feb 2019 11:12:03 +0800</pubDate><description><![CDATA[与之前写的Java随笔一样,此篇博客主要是用来记录我之前存放在本地的Word文档中的一些Java的自身理解,由于水平有限所以可能只适合自己加深理解与记忆。

目录

RentrantLock

transient关键字

volatile关键字

通过Java内存机制解读volatile关键字

TreadLocal

String的intern()方法

Lamad表达式

Java1.8接口新...]]></description><category></category></item><item><title><![CDATA[RabbitMQ入门（三）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/87716098</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/87716098</guid><author>zhl704792104</author><pubDate>Tue, 19 Feb 2019 16:54:57 +0800</pubDate><description><![CDATA[这篇博客主要是基于RabbitMQ官网介绍的入门六节中的后面两三节,结合自身的一些理解而成的,主要是用来总结和加深自己对RabbitMQ的使用与理解。

RabbitMQ入门（一）

RabbitMQ入门（二）

RabbitMQ入门（三）

路由和主题的讲解

RabbitMQ不像ActiveMQ在创建容器（我自己这么叫,也就是存放信息的地方）可以指定是Queue或者Topic。而是通过在创建E...]]></description><category></category></item><item><title><![CDATA[RabbitMQ入门（二）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/87623547</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/87623547</guid><author>zhl704792104</author><pubDate>Mon, 18 Feb 2019 16:48:12 +0800</pubDate><description><![CDATA[在上一篇博客,笔者简单的介绍了一些RabbitMQ相关的内容,在这一篇博客会根据RabbitMQ官网的入门介绍,结合笔者自身的理解更深入的在代码方面介绍RabbitMQ的入门使用，。同样,这篇博客主要的目的也是整理记录自己的学习笔记,加深自己对RabbitMQ的使用与理解。

RabbitMQ入门（一）

RabbitMQ入门（二）

RabbitMQ入门（三）

目录

1.入门

创建消息生产...]]></description><category></category></item><item><title><![CDATA[RabbitMQ入门（一）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/87606896</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/87606896</guid><author>zhl704792104</author><pubDate>Mon, 18 Feb 2019 13:25:54 +0800</pubDate><description><![CDATA[在之前的博客中,我简单的写了RabbitMQ结合SpringBoot的简单应用,但对于RabbitMQ的一些概念以及简单使用并没有进行说明,最近有时间我将之前学习RabbitMQ的时候写的学习Word文档提交到优快云中了。同样,这篇博客主要的目的也是整理记录自己的学习笔记,可能是一篇只适合一些人理解的博客,如果对读者有一定的启发那就更好了。

RabbitMQ入门（一）

RabbitMQ入门（...]]></description><category></category></item><item><title><![CDATA[Java随笔（一）]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86976174</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86976174</guid><author>zhl704792104</author><pubDate>Mon, 11 Feb 2019 10:26:13 +0800</pubDate><description><![CDATA[此篇博客主要是用来记录我之前存放在本地的Word文档中的一些Java的自身理解,由于水平有限所以可能只适合自己加深理解与记忆。

目录

垃圾回收中标记复制相关理解

对象进入老年代的例外情况

虚拟机空间分配担保策略

虚拟机性能监控工具

jps   

jstat

jinfo

jvisualvm 可以算是上面命令行一个大集合,我们可以使用它来进行简单的监控。

类生命周期相关

全局变量...]]></description><category></category></item><item><title><![CDATA[SpringBoot与EhCache简单结合]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86740168</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86740168</guid><author>zhl704792104</author><pubDate>Sat, 02 Feb 2019 09:38:39 +0800</pubDate><description><![CDATA[在日常工作中,我们时常会或多或少的使用的缓存。举个例子,比如在系统中我们时常会查询一个单位在的所有人员,如果每次我们都从数据库中查询,那么就会导致性能的浪费,这时候我们在类中声明一个静态Map,里面将单位id和人员列表对应起来,我们只在最初查询的时候从数据库中获取,而在之后只是查询Map中数据即可,这其实就是缓存的最简单实现。但是在真正的工作中,我们很少会用这种最简单的方式来做缓存处理,因为这种自...]]></description><category></category></item><item><title><![CDATA[RabbitMQ与SpringBoot简单结合（二）结合使用简单介绍]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86737350</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86737350</guid><author>zhl704792104</author><pubDate>Fri, 01 Feb 2019 13:46:38 +0800</pubDate><description><![CDATA[在之前的博客中,我们介绍了如何搭建RabbitMQ环境,在这篇博客中,会介绍SpringBoot和RabbitMQ的简单的综合使用。

目录

RabbitMQ对比ActiveMQ结合SpringBoot的优点

结合使用的简单介绍

POM.xml添加依赖

修改application.properties

创建RabbitMQ相关类

创建消息提供者

创建消息消费者

创建Controll...]]></description><category></category></item><item><title><![CDATA[RabbitMQ与SpringBoot简单结合（一）RabbitMQ环境搭建]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86604778</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86604778</guid><author>zhl704792104</author><pubDate>Wed, 23 Jan 2019 10:23:12 +0800</pubDate><description><![CDATA[RabbitMQ是一个在AMQP（Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计）基础上完成的，可复用的企业消息系统。他遵循Mozilla Public License开源协议。它跟ActiveMQ一样,都是为了提高系统吞吐量而引入的消息队列框架。在这一章,我会简单的介绍一下有...]]></description><category></category></item><item><title><![CDATA[SpringBoot与ActiveMQ结合（下） 综合使用]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86539360</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86539360</guid><author>zhl704792104</author><pubDate>Mon, 21 Jan 2019 09:37:06 +0800</pubDate><description><![CDATA[本篇博客将根据一个示例,介绍ActiveMQ和SpringBoot的综合使用,在这里我们也会分别队列模式和主题模式进行说明。

SpringBoot与ActiveMQ结合（上） ActiveMQ介绍与使用

修改POM文件

在pom.xml增加对ActiveMQ的相关jar包的引用:


&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframew...]]></description><category></category></item><item><title><![CDATA[SpringBoot与ActiveMQ结合（上）  ActiveMQ介绍与使用]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86538808</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86538808</guid><author>zhl704792104</author><pubDate>Fri, 18 Jan 2019 14:23:56 +0800</pubDate><description><![CDATA[在工作过程中,有时候需要处理的请求太多,而这些请求对实时性的要求又不是非常高,这时候我们可以消息队列来提高我们的系统吞吐量,将请求暂放到队列中,然后另外一个应用持续从队列取得需要处理的请求进行处理,从而增强系统抵御大流量的请求能力。今天我们这里首先简单介绍一下ActiveMQ和它的简单使用。

SpringBoot与ActiveMQ结合（下） 综合使用

目录

ActiveMQ介绍

Activ...]]></description><category></category></item><item><title><![CDATA[Dubbo与SpringBoot结合]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86470810</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86470810</guid><author>zhl704792104</author><pubDate>Mon, 14 Jan 2019 13:57:59 +0800</pubDate><description><![CDATA[工作中曾经使用Dubbo作为微服务管理框架,最近闲来无事重温了一下Dubbo以及SpringBoot的结合使用,于是写下这篇博客记录一下自己一些理解,这里由于自身水平有限,因此只是简单介绍了使用方法,而对于原理部分不进行深入探讨。

目录

Dubbo简介

Dubbo与SpringBoot的结合

配置ZooKeeper

服务提供者相关配置

引入依赖

配置文件修改

Application...]]></description><category></category></item><item><title><![CDATA[Java RMI技术初探]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86230807</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86230807</guid><author>zhl704792104</author><pubDate>Thu, 10 Jan 2019 15:31:35 +0800</pubDate><description><![CDATA[最近在使用dubbo进行项目开发,在使用过程中想到了Java中的RMI技术,这里记录一下关于RMI我的理解,以及简单使用的示例代码。

RMI简述

RMI全称是 Remote Method Invocation,也就是远程方法调用,它可以看做是RPC的Java形式,RMI只能用于Java语言中的远程方法调用。下面是一张网上描述RMI过程的图片。



RMI个人理解

下面是我对于RMI的个人理...]]></description><category></category></item><item><title><![CDATA[SpringBoot Nginx与Redis的简单结合]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/86152388</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/86152388</guid><author>zhl704792104</author><pubDate>Wed, 09 Jan 2019 16:55:17 +0800</pubDate><description><![CDATA[在工作中,随着用户量的增多,我们需要配置多台服务器分担压力,但是我们也不能让用户每次自己选择使用哪台服务器来提供服务,这时候我们就可以使用负

载均衡服务器作为服务的入口,让用户访问负载均衡服务器,负载均衡服务器将请求分发到真正的服务器,从而降低各个服务器的压力。

这里我们使用Nginx。

目录

使用Nginx实现负载均衡

解决Session问题

Nginx的upstream添加ip_h...]]></description><category></category></item><item><title><![CDATA[Java Web项目漏洞修复(绿盟检测)]]></title><link>https://blog.youkuaiyun.com/zhl704792104/article/details/82146470</link><guid>https://blog.youkuaiyun.com/zhl704792104/article/details/82146470</guid><author>zhl704792104</author><pubDate>Tue, 28 Aug 2018 14:34:59 +0800</pubDate><description><![CDATA[前言

在公司给客户做的一个项目中,客户使用绿盟进行了项目漏洞扫描,这里记录一下我做的一些漏洞修复方法。

检测到目标URL存在http host头攻击漏洞
由于我使用的是Nginx,因此只需要在Nginx的配置文件里面配置,使项目只能以指定域名(由于没有提供域名,设置的是ip)来访问，如下在设置server_name,这里可以使用多个域名）,如果使用其他域名（如localhost）访问直接返回4...]]></description><category></category></item></channel></rss>