<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[InterceptWall的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/InterceptWall</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; InterceptWall]]></copyright><item><title><![CDATA[统计Windows磁盘占用情况]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/159722739</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/159722739</guid><author>InterceptWall</author><pubDate>Wed, 01 Apr 2026 11:28:52 +0800</pubDate><description><![CDATA[【代码】统计Windows磁盘占用情况。]]></description><category></category></item><item><title><![CDATA[RabbitMQ实战]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/126571930</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/126571930</guid><author>InterceptWall</author><pubDate>Sun, 28 Aug 2022 17:22:06 +0800</pubDate><description><![CDATA[解耦：在项目启动之初来预测将来会碰到什么需求是极其困难的。消息中间件在处理过程中间插入了一个隐含的、基于数据的接口层，两边的处理过程都要实现这一接口，这允许你独立地扩展或修改两边的处理过程，只要确保它们遵守同样的接口约束即可冗余〈存储) 有些情况下，处理数据的过程会失败。消息中间件可以把数据进行持久化直到它们已经被完全处理，通过这一方式规避了数据丢失风险。在把 个消息从消息中间件中删除之前，需要你的处理系统明确地指出该消息己经被处理完成，从而确保你的数据被安全地保存直到你使用完毕。...]]></description><category></category></item><item><title><![CDATA[Spring启动之bean定义注册]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/123232505</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/123232505</guid><author>InterceptWall</author><pubDate>Wed, 02 Mar 2022 15:52:45 +0800</pubDate><description><![CDATA[1、前言

Spring容器在本文可以简单理解为DefaultListableBeanFactory,它是BeanFactory的实现类，这个类有几个非常重要的属性：beanDefinitionMap是一个map，用来存放bean所对应的BeanDefinition；beanDefinitionNames是一个List集合，用来存放所有bean的name；singletonObjects是一个Map，用来存放所有创建好的单例Bean

2、入口
2.1、主方法
public static void main]]></description><category></category></item><item><title><![CDATA[Spring启动之初始化容器]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/123128445</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/123128445</guid><author>InterceptWall</author><pubDate>Fri, 25 Feb 2022 11:00:56 +0800</pubDate><description><![CDATA[1、前言

Spring会将所有交由Spring管理的类，扫描其class文件，将其解析成BeanDefinition，在BeanDefinition中会描述类的信息，例如:这个类是否是单例的，Bean的类型，是否是懒加载，依赖哪些类，自动装配的模型。Spring创建对象时，就是根据BeanDefinition中的信息来创建Bean
Spring容器在本文可以简单理解为DefaultListableBeanFactory,它是BeanFactory的实现类，这个类有几个非常重要的属性：beanDefinit]]></description><category></category></item><item><title><![CDATA[设计模式 - 迭代器模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/120361668</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/120361668</guid><author>InterceptWall</author><pubDate>Sat, 18 Sep 2021 09:56:53 +0800</pubDate><description><![CDATA[一、基本介绍

英文名：Iterator
概念：它提供一种方法访问一个容器对象中各个元素，而又不需暴露该对象的内部细节
模式类型：结构型
主要特点：提供了遍历容器的方便性，容器只要管理增减元素就可以了，需要遍历时交由迭代器进行

二、实现
1、模式


Iterator抽象迭代器：负责定义访问和遍历元素的接口，而且基本上是有固定的3个方法：first()获
得第一个元素，next()访问下一个元素，hasNext()是否已经访问到底部


ConcreteIterator具体迭代器：具体迭代器角色要实现迭代]]></description><category></category></item><item><title><![CDATA[设计模式 - 策略模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/120011199</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/120011199</guid><author>InterceptWall</author><pubDate>Tue, 31 Aug 2021 10:03:20 +0800</pubDate><description><![CDATA[一、基本介绍

英文名：Strategy Pattern
概念：定义一组算法，将每个算法都封装起来，并且使它们之间可以互换
模式类型：结构型
设计原则：
主要特点

二、实现
1、模式

Context聚合Strategy
ConcreteStrategy实现Strategy


Ⅰ、代码
抽象的策略角色
public interface Strategy {
    //策略模式的运算法则
    void doSomething();
}

具体策略1
public class ConcreteStra]]></description><category></category></item><item><title><![CDATA[设计模式 - 装饰器模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/120000367</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/120000367</guid><author>InterceptWall</author><pubDate>Mon, 30 Aug 2021 16:44:30 +0800</pubDate><description><![CDATA[一、基本介绍


英文名：Decorator


概念：动态的将新功能附加到对象上。


模式类型：结构型


设计原则：开闭原则（OCP）


主要特点：在对象功能扩展方面，它比继承更有弹性


二、实现
需求： 下午茶：咖啡 + 调味剂，价格结算

咖啡种类多，调味剂种类也多
可单点咖啡，也可两者都点。且两者随意可组合（咖啡 + 多调味剂）

1、一般实现
方案一：该方案类会非常多，每增加一种咖啡或一种调味剂都需要创建很多类

抽象咖啡类，所有咖啡类都实现该抽象类
抽象调味剂，所有调味剂都实现该抽象类
]]></description><category></category></item><item><title><![CDATA[设计模式 - 责任链模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119996835</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119996835</guid><author>InterceptWall</author><pubDate>Mon, 30 Aug 2021 14:46:45 +0800</pubDate><description><![CDATA[一、基本介绍


概念：使多个对象都有机会处理请求，从而避免了请求的发送者和接受者之间的耦合关
系。将这些对象连成一条链，并沿着这条链传递该请求，直到有对象处理它为止


模式类型：结构型


设计原则：开闭原则


二、实现
需求：

父系社会，女人逛街在不同阶段需向不同的男人申请

1、一般实现
Ⅰ、代码
// 女人接口
public interface IWomen {
    // 获取个人情况
    int getType();
    // 获取需要请求的事情，逛街、约会？
    Strin]]></description><category></category></item><item><title><![CDATA[Mybatis深入浅出]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119895168</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119895168</guid><author>InterceptWall</author><pubDate>Tue, 24 Aug 2021 17:39:29 +0800</pubDate><description><![CDATA[一、Hibernate基本介绍
1、产生原因


JDBC使用大致步骤

连接数据库，注册驱动和数据库信息
操作Connection，打开Statement对象
通过Statement执行SQL，返回结果到ResultSet对象
使用ResultSet读取数据，然后通过代码转化为具体的POJO对象
关闭数据库相关资源



由于JDBC操作过于复杂繁琐，于是就产生了对象关系映射（Objec Relational Mapping，简称ORM,OR mapping）


2、作用

ORM模型就是数据库的表和简]]></description><category></category></item><item><title><![CDATA[设计模式 - 命令模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119793811</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119793811</guid><author>InterceptWall</author><pubDate>Thu, 19 Aug 2021 09:00:34 +0800</pubDate><description><![CDATA[一、基本介绍

英文名：Command
概念：将一个请求封装成一个对象，从而让你使用不同的请求把客户端参数化，对请求排队或者记录请求日志，可以提供命令的撤销和恢复功能
模式类型：结构型
设计原则：
主要特点：

二、实现
需求： 开发项目的需求变更

需要修改需求文档、调整页面、更改代码等

1、一般实现
Ⅰ、代码
public interface Group {
    //甲乙双方分开办公，如果你要和某个组讨论，你首先要找到这个组
    void find();

    //被要求增加功能
    ]]></description><category></category></item><item><title><![CDATA[设计模式 - 中介者模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119793785</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119793785</guid><author>InterceptWall</author><pubDate>Thu, 19 Aug 2021 08:59:09 +0800</pubDate><description><![CDATA[一、基本介绍

英文名：Mediator
概念：用一个中介对象封装一系列的对象交互，中介者使各对象不需要显示地相互作用，从而使其耦合松散，而且可以独立地改变它们之间的交互
模式类型：结构型
设计原则：
主要特点：一个类只负责处理自己的活动（行为），与自己无关的活动就丢给中介者处理

二、实现
需求：

模拟进销存三个模块的交互

1、一般实现

每个类都与其他两个类产生了关联关系

Ⅰ、代码
采购管理
public class Purchase {

    //采购IBM电脑
    public voi]]></description><category></category></item><item><title><![CDATA[设计模式 - 建造者模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119738831</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119738831</guid><author>InterceptWall</author><pubDate>Mon, 16 Aug 2021 17:59:58 +0800</pubDate><description><![CDATA[一、基本介绍

建造者模式又叫生成器模式，是一种对象的构建模式。它可以将复杂对象的建造过程抽象出来，使这个抽象过程的不同实现方法可以构造出不同表现的对象

1、四个角色

Product（产品）：一个具体的产品对象
Builder（抽象建造者）：创建一个具体产品对象的各个部件指定的接口/抽象类
ConcreteBuilder（具体建造者）：实现抽象建造者接口/抽象类，构建和装配各个部件
Director（指挥者）：构建一个使用Builder接口的对象，它主要是用于创建一个复杂的对象。

隔离了客户和对象的生]]></description><category></category></item><item><title><![CDATA[设计模式 - 模板方法模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119737081</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119737081</guid><author>InterceptWall</author><pubDate>Mon, 16 Aug 2021 16:55:45 +0800</pubDate><description><![CDATA[一、基本介绍

英文名：Template Method Pattern
概念：定义一个操作中的算法的框架，而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
模式类型：结构型
设计原则：开闭原则
主要特点：可以有一个或几个，一般是一个具体方法，也就是一个框架，实现对基本方法的调度， 完成固定的逻辑

二、实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5gc9UBOy-1629104130138)(C:\Users\wl\Deskto]]></description><category></category></item><item><title><![CDATA[设计模式 - 简单工厂模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119737058</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119737058</guid><author>InterceptWall</author><pubDate>Mon, 16 Aug 2021 16:54:40 +0800</pubDate><description><![CDATA[一、介绍

简单工厂模式属于创建型模式，是工厂模式的一种，是工厂模式中最简单实用的模式
定义了一个创建对象的类，由这个类来封装实例化对象的行为
简单工厂也叫静态工厂模式，是工厂方法模式的简化

二、实现
1、简单工厂实现
Ⅰ、代码
// 抽象产品
public abstract class Product { 
    //产品类的公共方法 
    public void method1(){ //业务逻辑处理 }

    //抽象方法 
    public abstract void method2]]></description><category></category></item><item><title><![CDATA[设计模式 - 工厂方法模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119736938</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119736938</guid><author>InterceptWall</author><pubDate>Mon, 16 Aug 2021 16:51:17 +0800</pubDate><description><![CDATA[一、介绍


定义一个用于创建对象的 接口，让子类决定实例化哪一个类，工厂方法使一个类的实例化延迟到其子类


工厂方法模式属于创建型模式，是工厂模式的一种


工厂方法模式是对简单工厂模式的抽象升级，将工厂这个概念抽象出来成为接口或抽象类，然后针对每种目标实现类创建一个工厂实现，一对一来实现，当新增了目标实现，只要同时新增一个工厂实现即可。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmQxfBV5-1629103854992)(C:\Users\wl\Deskto]]></description><category></category></item><item><title><![CDATA[设计模式 - 桥接模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119175266</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119175266</guid><author>InterceptWall</author><pubDate>Wed, 28 Jul 2021 11:16:05 +0800</pubDate><description><![CDATA[一、基本介绍


英文名：Bridge


概念：将实现与抽象放在两个不同的类层次中，使两个层次可以独立改变


模式类型：结构型设计模式


设计原则：基于类的最小设计原则。通过使用封装、聚合及继承等行为让不同的类承担不同的职责。


主要特点：将抽象与行为实现分离开，从而可以保持各部门的独立性以及应对功能的扩展


二、实现
需求： 设计手机品牌、样式的关系

手机存在多种品牌，和多种样式

#mermaid-svg-YP1KK6PGVpg3YTZS .label{font-family:'trebuc]]></description><category></category></item><item><title><![CDATA[设计模式 - 适配器模式]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/119142215</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/119142215</guid><author>InterceptWall</author><pubDate>Tue, 27 Jul 2021 13:52:31 +0800</pubDate><description><![CDATA[一、基本介绍

适配器模式（Adapter pattern）将某个类的接口转换成客户端期望的另一个接口表示，主要目的时兼容性，让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器（Wrapper）
适配器模式属于结构性模式
主要分类：

类适配器模式：在Adapter中，继承被适配的类
对象适配器模式：在Adapter中，持有被适配的对象
接口适配器模式：在Adapter中，实现被适配的接口



二、实现
需求：

手机充电需要将220V电压适配为输出5V的电压

1、类适配器模式

Ada]]></description><category></category></item><item><title><![CDATA[设计模式 - 七大原则]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/118933705</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/118933705</guid><author>InterceptWall</author><pubDate>Tue, 20 Jul 2021 14:04:16 +0800</pubDate><description><![CDATA[2、接口隔离

客户端不应该依赖它不需要的接口，即一个类对另一个类的依赖应建立在最小的接口上

案例Ⅰ

违反接口隔离原则
类A通过接口Inteface1依赖（使用）C类，但只用到1，2，3方法
类B通过接口Inteface1依赖（使用）D类，但只用到1，4，5方法

public class Segregation {
    public static void main(String[] args) {
        A a = new A();
        a.depend1(new C())]]></description><category></category></item><item><title><![CDATA[Class和ClassLoader加载资源的区别]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/118399903</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/118399903</guid><author>InterceptWall</author><pubDate>Thu, 01 Jul 2021 22:46:51 +0800</pubDate><description><![CDATA[1. 案例
public static void main(String[] args) {
    System.out.println(TestController.class.getResource(""));
    System.out.println(TestController.class.getResource("/"));
    System.out.println();
    System.out.println(TestController.class.getClassLoader]]></description><category></category></item><item><title><![CDATA[IO流基础]]></title><link>https://blog.youkuaiyun.com/InterceptWall/article/details/118399856</link><guid>https://blog.youkuaiyun.com/InterceptWall/article/details/118399856</guid><author>InterceptWall</author><pubDate>Thu, 01 Jul 2021 22:43:36 +0800</pubDate><description><![CDATA[1. 基本概念
1. IO模型设计
Java的IO模型设计非常优秀，它使用Decorator(装饰者)模式，按功能划分Stream，可以动态装配这些Stream，以便获得需要的功能。
1. 例如，需要一个具有缓冲的文件输入流，则应当组合使用FileInputStream和BufferedInputStream。

2. IO流的分类
1. 按数据流的方向分为：输入流、输出流（此输入、输出是相对于我们写的代码程序而言）
		输入流：从别的地方(本地文件，网络上的资源等)获取资源 输入到 我们的程序（内存）中。]]></description><category></category></item></channel></rss>