<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hackerHL的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hackerHL</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hackerHL]]></copyright><item><title><![CDATA[代码编排与领域设计]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/120313812</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/120313812</guid><author>hackerHL</author><pubDate>Wed, 15 Sep 2021 18:03:54 +0800</pubDate><description><![CDATA[讲代码重构前,必须讲到软件架构设计,初期没有好的设计,再厉害的程序员,在堆积如山的屎山代码面前,都没有办法把原本一团乱麻的逻辑,层层剖析开,建立起新的代码金字塔

软件结构设计

1、垂直切分+水平扩展

想象一下,一个复杂的、具有类似功能的、具有个性功能的多表业务,如何去编排他的代码结构?

1、把业务按照简单的操作步骤,抽象出多个表之间共性的操作

2、将这些共性操作划分成具体的步骤,封装成一个抽象类,在业务层面进行简单的业务步骤垂直切分


public abstract class Abstract]]></description><category></category></item><item><title><![CDATA[【源码与设计模式】——SpringBoot]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/107105305</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/107105305</guid><author>hackerHL</author><pubDate>Fri, 03 Jul 2020 14:49:21 +0800</pubDate><description><![CDATA[最近小女子换了份新工作，相较于之前的工作，轻松了许多，还不用承担项目大佬的角色，平时上班时闲下来的时光变得相当多，于是乎，重新拾起过去写一系列源码剖析的article的想法，与各位有研究优秀源码与设计模式的小哥哥小姐姐们，分享讨论。
该篇文章将会从一下几个方面，进行深刻剖析

入参
构造
run启动流程
返回


...]]></description><category></category></item><item><title><![CDATA[Hystrix断路机制下的Exception异常传递]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/106714091</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/106714091</guid><author>hackerHL</author><pubDate>Fri, 12 Jun 2020 15:33:57 +0800</pubDate><description><![CDATA[本菇凉最近发现一个很奇特的问题，基于SpringCloud的微服务项目下与DDD领域设计模型的架构下，难免会存在服务间大量相互Feign调用的场景，但是当一些模块开发人员进行个体服务开发时，走进异常流程会直接抛出基于RuntimeException的封装好的异常信息给到前端，这原本是非常常见的做法，但是基于DDD领域模型的设计思想下，经常性的需要对后端各服务进行接口聚合封装，提供统一的API入口，分离领域与api，那么原先已开发好的子服务的流程Exception，经过这一层Feign的封装聚合调用，Feig]]></description><category></category></item><item><title><![CDATA[记一次蛋疼的tomcat、shiro自动生成的JESSIONID去除历程..........]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/82035702</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/82035702</guid><author>hackerHL</author><pubDate>Sat, 25 Aug 2018 03:46:23 +0800</pubDate><description><![CDATA[近日手头上有一份蛋疼的渗透测试报告，洋洋洒洒列了几十条，本菇凉连月加班才勉勉强强，从对这些漏洞的无知，到为web打补丁、防攻击，真是心力交瘁，内忧外患。

今天遇到的漏洞，学名为：会话cookie通过URL传递

按照字面理解呢，就是JESSIONID放在url中，直接列在浏览器上，安全公司认为这是敏感信息，不宜大张旗鼓的展示。

好吧，我改。55555555555...........

先给大...]]></description><category></category></item><item><title><![CDATA[SpringBoot——自动配置依赖[spring-boot-starter-XXX]]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/78274022</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/78274022</guid><author>hackerHL</author><pubDate>Wed, 18 Oct 2017 16:01:53 +0800</pubDate><description><![CDATA[SpringBoot之所以流行的原因，主要就是因为自动配置依赖——【约定优先于配置】，提供日常企业应用的各种场景。有非常多的“开箱即用”的依赖模块，也是SpringBoot快速高效的原因。默认支持和提供了【80+的自动配置依赖模块】SpringBoot提供的自动配置依赖模块都以spring-boot-starter-为命名前缀，并且这些依赖都在org.springframework.boot下。]]></description><category></category></item><item><title><![CDATA[SpringBoot——configuration]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/78273749</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/78273749</guid><author>hackerHL</author><pubDate>Wed, 18 Oct 2017 15:47:32 +0800</pubDate><description><![CDATA[在Spring4之前，是通过xml配置文件配置的，十分麻烦 
从Spring4开始，推荐使用java Config的方式，使用Annoation来进行配置。举例：mybatis在SpringBoot项目中的配置@Configuration
public class MybatisConfiguration   {
    //加载datasource配置文件
    @Bean
    @Confi]]></description><category></category></item><item><title><![CDATA[SpringBoot——基于条件的自动配置]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/78273517</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/78273517</guid><author>hackerHL</author><pubDate>Wed, 18 Oct 2017 15:34:52 +0800</pubDate><description><![CDATA[在Spring框架中，可以使用【@Conditional+@Configuration】或者【@Conditional+@Bean】来干预一个配置或者bean定义是否能够生效 
——即依赖模块都是按需加载的，只有符合某些特定的条件，这些依赖条件才会生效，即“智能”自动配置]]></description><category></category></item><item><title><![CDATA[SpringBoot——run启动流程]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/78270780</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/78270780</guid><author>hackerHL</author><pubDate>Wed, 18 Oct 2017 11:14:21 +0800</pubDate><description><![CDATA[SpringApplicationRunListener是SpringBoot应用的main()执行过程中接不同执行时点通知的【监听者】。 
applicationListener是Spring框架对【监听者】模式的一种框架实现 
SpringBoot中添加自定义的ApplicationListener的两种方式 
 
ApplicationContextInitialzerCommandLineR]]></description><category></category></item><item><title><![CDATA[SpringBoot启动的http异常]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/75088361</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/75088361</guid><author>hackerHL</author><pubDate>Thu, 13 Jul 2017 17:51:15 +0800</pubDate><description><![CDATA[在搭建完Spring Boot入门项目之后，成功启动，然后在浏览器上测试访问，结果显示没有此页面，控制台报错如下 
试了很多办法，最后才发现不是项目本身的问题，而是在浏览器输入url的时候，默认会直接用https，而这里是http，所以访问不到 
注意：Spring Boot入门项目在搭建的过程中，如果在pom.xml配置了相关依赖项，但是在application.properties项目配置文件中]]></description><category></category></item><item><title><![CDATA[CSS3 :nth-child() 选择器]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/75005220</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/75005220</guid><author>hackerHL</author><pubDate>Wed, 12 Jul 2017 09:59:29 +0800</pubDate><description><![CDATA[最近做项目的时候，需要修改jqGrid源代码来修改外观，把模态框（弹出框）从原来的竖直显示变成多列显示，而jqGrid插件是自动根据绑定数据来生成前端样式的，由于对CSS并不熟悉，经过一整天才相处了解决办法nth-child()用于选择子元素 
这是我原创的加入jqGrid源代码的css样式，会根据弹出框的显示条目数来自动决定是否浮动显示（即是直接垂直显示，还是分两列显示）.ui-jqdialog-]]></description><category></category></item><item><title><![CDATA[java.io.EOFException]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/75004767</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/75004767</guid><author>hackerHL</author><pubDate>Wed, 12 Jul 2017 09:51:27 +0800</pubDate><description><![CDATA[最近在做项目的时候，使用多线程来提高网络数据读取速度，然后报 
java.io.EOFException错误。java.io.EOFExceptionJava对此的解释： 
public class EOFException extends IOException当输入过程中意外到达文件或流的末尾时，抛出此异常。   这个解释很模糊，但是我学到一个新的知识：因为使用多线程来提高速度，但是网络传输流是]]></description><category></category></item><item><title><![CDATA[shiro]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/74199770</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/74199770</guid><author>hackerHL</author><pubDate>Mon, 03 Jul 2017 15:08:28 +0800</pubDate><description><![CDATA[http://canann.iteye.com/blog/1929180]]></description><category></category></item><item><title><![CDATA[Maven使用教程]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/72841051</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/72841051</guid><author>hackerHL</author><pubDate>Fri, 02 Jun 2017 09:16:57 +0800</pubDate><description><![CDATA[详细教程点击这里]]></description><category></category></item><item><title><![CDATA[ES6]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/71605716</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/71605716</guid><author>hackerHL</author><pubDate>Thu, 11 May 2017 11:40:26 +0800</pubDate><description><![CDATA[ES6新特性参考： 
http://www.jianshu.com/p/ebfeb687eb70 
http://www.cnblogs.com/Wayou/p/es6_new_features.html]]></description><category></category></item><item><title><![CDATA[通过阿里云发布一个Tomcat,并通过域名访问]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/71062663</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/71062663</guid><author>hackerHL</author><pubDate>Mon, 01 May 2017 19:21:14 +0800</pubDate><description><![CDATA[详细内容]]></description><category></category></item><item><title><![CDATA[Linux安装JDK+Tomcat+mySql]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/71056798</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/71056798</guid><author>hackerHL</author><pubDate>Mon, 01 May 2017 16:59:12 +0800</pubDate><description><![CDATA[我想把自己写的网站发布一下，所以选用了阿里的云服务器，用了个学生价9.9，先玩一个月。- 安装JDK进入profile编辑[root@localhost~]# cd /etc  
[root@localhost etc]# vi profile  在profile结尾处插入export JAVA_HOME=/usr/lib/jvm/java 
export JRE_HOME=${JAVA_HOME}]]></description><category></category></item><item><title><![CDATA[阿里云Linux服务器安装配置ftp及上传网站全教程]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/71056134</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/71056134</guid><author>hackerHL</author><pubDate>Mon, 01 May 2017 15:14:03 +0800</pubDate><description><![CDATA[安装ftp详细教程使用xshell上传文件上传文件使用rz与sz命令,远程Linux系统上需要安装lrzsz工具包下载安装包lrzsz-0.12.20.tar.gz:  http://www.linuxidc.com/Linux/2010-08/27739.htm安装如下：[Linuxidc@Linuxidc /]# yum install lrzsz注意：我使用的命令是yum，如果你的是其他的请在]]></description><category></category></item><item><title><![CDATA[逆向工程错误]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/70949054</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/70949054</guid><author>hackerHL</author><pubDate>Sat, 29 Apr 2017 14:46:34 +0800</pubDate><description><![CDATA[写cappella项目的时候遇到一个让我解决了很久的问题： 
Result Maps collection already contains value for xyx.dsw.dao.mapper.admin.quotationwish.TempTestTableMapper.TempTestTableResultCaused by: java.lang.IllegalArgumentExcept]]></description><category></category></item><item><title><![CDATA[启动Tomcat出现“Bad version number in .class file (unable to load class XXX)”解决]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/69916357</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/69916357</guid><author>hackerHL</author><pubDate>Sun, 09 Apr 2017 20:21:44 +0800</pubDate><description><![CDATA[今天写ssm项目的时候遇到一个常见的问题：Bad version number in .class file，是一个比较常见的问题。Caused by: 
java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class cn.hl.ssm.ItemsController)因]]></description><category></category></item><item><title><![CDATA[Proxy代理模式]]></title><link>https://blog.youkuaiyun.com/hackerHL/article/details/60870690</link><guid>https://blog.youkuaiyun.com/hackerHL/article/details/60870690</guid><author>hackerHL</author><pubDate>Wed, 08 Mar 2017 13:39:27 +0800</pubDate><description><![CDATA[当别人给你了源包，当你是用该源包方法的时候，无法修改源代码（比如只给你一个编译过的class文件）来修改实现你所需要的功能，或者需要把业务代码和日志打印完全分离开，不想要业务代码里面混着日志代码，或者需要提供的java类什么地方是瓶颈，肯定需要在方法的前后加上一些代码，就需要用到代理模式。Tankpackage Proxy;import java.util.Random;public class T]]></description><category></category></item></channel></rss>