<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lisong_jack的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lisong_jack</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lisong_jack]]></copyright><item><title><![CDATA[spring-boot-starter-parent pom.xml]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/135819110</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/135819110</guid><author>Lisong_jack</author><pubDate>Wed, 24 Jan 2024 12:31:10 +0800</pubDate><description><![CDATA[【代码】spring-boot-starter-parent pom.xml。]]></description><category></category></item><item><title><![CDATA[Maven superpom]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/135631123</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/135631123</guid><author>Lisong_jack</author><pubDate>Tue, 16 Jan 2024 17:45:56 +0800</pubDate><description><![CDATA[【代码】Maven superpom。]]></description><category></category></item><item><title><![CDATA[项目点滴：简单搞搞系统授权]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/135028422</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/135028422</guid><author>Lisong_jack</author><pubDate>Sat, 16 Dec 2023 09:10:41 +0800</pubDate><description><![CDATA[系统授权码，可在一定程度上保障系统访问安全]]></description><category></category></item><item><title><![CDATA[项目点滴：前后端交互的数据加密]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/135021841</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/135021841</guid><author>Lisong_jack</author><pubDate>Fri, 15 Dec 2023 17:44:53 +0800</pubDate><description><![CDATA[前后端交互数据加解密]]></description><category></category></item><item><title><![CDATA[项目点滴：强行让“策略模式“在日志编号生成中应用]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/135019957</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/135019957</guid><author>Lisong_jack</author><pubDate>Fri, 15 Dec 2023 17:09:23 +0800</pubDate><description><![CDATA[强行让"策略模式"在日志编号生成中简单应用]]></description><category></category></item><item><title><![CDATA[【工具开发】通过自定义注解和反射完成无字段侵入构造树形结构列表，支持排序和层级数量统计]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/127111738</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/127111738</guid><author>Lisong_jack</author><pubDate>Fri, 30 Sep 2022 09:37:44 +0800</pubDate><description><![CDATA[树形结构工具类开发，通过自定义注解和反射完成无字段侵入构造树形结构列表，支持排序和层级数量统计]]></description><category></category></item><item><title><![CDATA[Apache POI 手写ExcelUtil轻松完成配置导出]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/109303425</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/109303425</guid><author>Lisong_jack</author><pubDate>Thu, 29 Oct 2020 15:24:54 +0800</pubDate><description><![CDATA[前言

数据导出功能是Java开发过程中不可避免的需求，我们通常会选用Apache POI或者阿里的EasyPOI来使用。我们通过配置Workbook、Sheet、Row、Cell等能实现数据排版，完成Excel表格导出。但如果系统中存在多个导出需求，并且每个导出表格的表头都不相同的话，我们每次重新单独设计Workbook、Sheet、Row、Cell等是件很麻烦的事。于是我心想自己写一个解析引擎，通过简单的XML配置来完成导出，并且要动态解析，这样在配置文件变更的时候不用重启服务也能得到变更的结果。

选]]></description><category></category></item><item><title><![CDATA[【学习】AMQP（高级消息队列协议）]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/109301779</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/109301779</guid><author>Lisong_jack</author><pubDate>Tue, 27 Oct 2020 00:06:56 +0800</pubDate><description><![CDATA[1、AMQP架构及基本概念



Borker：接收和分发消息的应用，RabbitMQ Server就是Message Broker。
	Vritual Host：虚拟主机，出于多租户和安全因素设计的，在逻辑上把AMQP的基本组件划分到一个分组中，类似于Namespace概念。当多个不同的用户使用同一个AMQP Server时，可以划分出多个vhost，每个用户在自己的vhost创建exchange/queue等，彼此隔离不影响。
	Connection：Publisher、Comsumer和Borker之]]></description><category></category></item><item><title><![CDATA[Java中二进制与十六进制的转换]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/109251430</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/109251430</guid><author>Lisong_jack</author><pubDate>Fri, 23 Oct 2020 23:30:46 +0800</pubDate><description><![CDATA[Java开发过程中，我们常会需要将二进制数组转换为字符串。Spring的工具类DegistUtils提供了相关的方法，那具体的原理是啥呢？其实字符串和字节的转换，关键在于如何取出字节的高四位和低四位。先阐述具体方法：

一个字节占8位，如何取出其高四位和低四位？例如：有字节11101001，高四位：1110、低四位：1001，如何取出？

取高四位：与字节11110000做与运算后右移四位，字节11110000转化为十六进制为0xF0，十进制值为255-15=240

 (11101001 &amp;...]]></description><category></category></item><item><title><![CDATA[单例对象的几种创建方式]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/107120783</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/107120783</guid><author>Lisong_jack</author><pubDate>Sat, 04 Jul 2020 10:34:42 +0800</pubDate><description><![CDATA[1、饿汉式


public class SingletonInstance{ 
    private static final SingletonInstance instance = new SingletonInstance(); 

    private SingletonInstance(){ }

    public static SingletonInstance getInstance(){ 
        return instance ; 
    } 
}



在类加载时就.]]></description><category></category></item><item><title><![CDATA[数据库事务的4大特性及隔离级别]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/107120125</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/107120125</guid><author>Lisong_jack</author><pubDate>Sat, 04 Jul 2020 10:14:11 +0800</pubDate><description><![CDATA[事务的概念

事务指逻辑上的一组操作，组成这组操作的各个单元，要不全部成功，要不全部不成功，主要用来保证数据的完整性和一致性。

提交事务：将此事务对数据库数据的操作（新增、删除、更新）永久的记录到数据库中。
回滚事务：将此事务对数据库数据的操作（新增、删除、更新）撤回，恢复到事务处理之前的状态。

事务是逻辑上的一个程序执行单元，用来保证数据的完整性和一致性。但有些数据库不支持事务，任何支持事务的数据库，都必须具备4个特性：

原子性（Atomicity）
	一致性（Consistency）
	隔离性（I]]></description><category></category></item><item><title><![CDATA[Java 循环标签]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/106387901</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/106387901</guid><author>Lisong_jack</author><pubDate>Wed, 27 May 2020 18:41:15 +0800</pubDate><description><![CDATA[通过使用循环标签，可以实现跳出多层循环，使程序更具灵活性。

break：跳出当前循环。
	break+标签：跳到指定标签的循环下。
	continue：忽略后续操作，跳到当前循环重新开始。
	continue+标签：忽略后续操作，跳到指定标签的循环下重新开始。
1、测试 break：


public static void main(String[] args) {
	outer: 	//标记循环,可以随意设置
	for (int i = 0; i &lt; 3; i++) {
		for (int j]]></description><category></category></item><item><title><![CDATA[Java IO  管道流]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/105597569</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/105597569</guid><author>Lisong_jack</author><pubDate>Sat, 18 Apr 2020 21:20:04 +0800</pubDate><description><![CDATA[Java IO的管道流包括PipedOutputStream和PipedInputStream，即管道输出流和管道输入流，两者配合使用可以实现线程间通信。

典型的一种情况：一个线程将数据写入PipedOutputStream，另一个线程从PipedInputStream中读取数据。基本模型如下：



所以使用管道实现线程间通信的主要流程为：

1、建立PipedOutputStream和Pip...]]></description><category></category></item><item><title><![CDATA[Shiro 认证模块]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/104775409</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/104775409</guid><author>Lisong_jack</author><pubDate>Tue, 10 Mar 2020 15:27:32 +0800</pubDate><description><![CDATA[仅供参考。

【认证模块】

该模块的核心对象是认证器Authenticator，其唯一功能是完成token的认证。
故Authenticator接口中只定义了一个方法(基于提交的token进行认证)AuthenticationInfo authenticate(AuthenticationToken authenticationToken)，由具体的实现类进行实现。

认证器：
Authenti...]]></description><category></category></item><item><title><![CDATA[Oracle Trunc函数]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/102802150</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/102802150</guid><author>Lisong_jack</author><pubDate>Tue, 29 Oct 2019 16:29:48 +0800</pubDate><description><![CDATA[select trunc(123.458) from dual --123

select trunc(123.458,0) from dual --123

select trunc(123.458,1) from dual --123.4

select trunc(123.458,-1) from dual --120

select trunc(123.458,-4) from dual ...]]></description><category></category></item><item><title><![CDATA[Java中字符串的编码转换]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/98667975</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/98667975</guid><author>Lisong_jack</author><pubDate>Tue, 06 Aug 2019 22:18:40 +0800</pubDate><description><![CDATA[说明：在JVM内部，字符串在java中统一用unicode表示。无论源文件是用什么编码，都会先用相应地编码方式解析成字符串，再将字符串转换为unicode格式的字节数组，作为内部存储。因此，不论源码文件是什么格式，同样的字符串，最后得到的unicode字节数组是完全一致的。

在程序未运行时，字符串以原始编码的字节数组存储在系统磁盘中；在程序运行时，字符串会被转化为unicode字符数组存储在J...]]></description><category></category></item><item><title><![CDATA[使用两个栈结构实现一个队列结构-模型]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/95371041</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/95371041</guid><author>Lisong_jack</author><pubDate>Wed, 10 Jul 2019 20:04:26 +0800</pubDate><description><![CDATA[使用两个栈结构实现一个队列结构-模型基本方案一方案二
基本
栈结构：先进后出
队列结构：先进先出
准备两个栈：stack1、stack2
方案一
1、入队列：将stack2中元素顺序出栈并入栈stack1，将新增元素入栈stack1，然后将stack1中元素顺序出栈并入栈stack2
2、出队列：stack2栈顶元素出栈
示意图：
方案二
1、入队列：将新增元素入栈stack1
2、出队列：将st...]]></description><category></category></item><item><title><![CDATA[位运算]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/93673987</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/93673987</guid><author>Lisong_jack</author><pubDate>Wed, 26 Jun 2019 00:10:06 +0800</pubDate><description><![CDATA[【转载】原文：https://blog.youkuaiyun.com/BIGBIGPPT/article/details/88919783

基本介绍

位运算是在二进制中的运算方式，所有其他进制的数在进行位运算时都要先转化成二进制数再进行运算。
位运算主要包括按位与(&amp;)、按位或(|)、按位异或(^)、取反( ~ )、左移(&lt;&lt;)、右移(&gt;&gt;)这几种。
其中除了取反( ~ )...]]></description><category></category></item><item><title><![CDATA[CentOS7环境下Docker部署MySQL、RabbitMQ、ElasticSearch服务]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/92832675</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/92832675</guid><author>Lisong_jack</author><pubDate>Wed, 19 Jun 2019 15:42:59 +0800</pubDate><description><![CDATA[1.系统安装Docker并设置开机自启


//docker安装
yum -y install docker-ce    

//开机自启
systemctl enable docker    

//版本查看
docker version  

2.使用默认仓库，拉取所需服务镜像


//镜像查看
docker images    

//拉取镜像
docker pull mysql	   ...]]></description><category></category></item><item><title><![CDATA[java内存区域与内存溢出异常]]></title><link>https://blog.youkuaiyun.com/Lisong_jack/article/details/92759544</link><guid>https://blog.youkuaiyun.com/Lisong_jack/article/details/92759544</guid><author>Lisong_jack</author><pubDate>Tue, 18 Jun 2019 01:45:02 +0800</pubDate><description><![CDATA[1.Java运行时数据区域

Java虚拟机在执行java的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途，以及创建和销毁的时间，有的区域随着虚拟机进程的启动而存在，有的区域则依赖用户进程的启动和结束而建立和销毁。根据《Java虚拟机规范》，Java虚拟机所管理的内存包括以下几个运行时数据区域：



(1)程序计数器

程序计数器是一块较小的内存空间，它可以看作是当前...]]></description><category></category></item></channel></rss>