Spring 的运行思路 Spring 的整个启动流程大致可以分为三个阶段: 配置阶段 初始化阶段 运行阶段 梦开始的地方 spring 配置文件 首先,我们准备一个配置文件来模拟 spring-application.xml 中的配置,为了偷懒方便解析,我们就直接写一个 minispring-config.properties 文件: scanPackage=com.minispring.demo Servlet 配置文件 大家都知道,所有依赖于 Web 容器的项目都是从读取 web.xml 文件中的配置开始的,…

2020-03-31 0条评论 1634点热度 0人点赞 SilverLining 阅读全文

Spring 不仅是一个框架,Spring 已然成为一种生态。 Spring 诞生之前 在 Spring 诞生之前,Java 服务端的主要的技术栈还是 Servlet,JSP,EJB,Struts 。 在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,更多的还需要关注如何使这些对象协作来完成所需功能,而且还要尽量满足低耦合、高聚合的设计。 可能有人说了,使用 “抽象工厂” 、 “工厂方法模式” 不也可以帮我们创建对象,使用 “生成器模式” 来处理对象间的依赖关系…

2020-03-29 0条评论 2775点热度 2人点赞 SilverLining 阅读全文

前言 本文来总结回顾一下之前学习的 26 中设计模式。 在正文开始之前,先抛出一个问题:我们为什么要学习设计模式? GoF 的设计模式是 Java 基础知识和 J2EE 框架知识之间一座隐性的"桥" 设计模式和 J2EE 在思想和动机上是一脉相承的,我总结了以下几个原因: 设计模式更抽象。 J2EE 是具体的产品代码,我们在日常工作中就可以接触到,而设计模式在对每个应用时才会产生具体代码; 设计模式是比 J2EE 等框架软件更小的体系结构, J2EE 中许多具体程序都是应用设计模式实现的。当你深入到 J2EE 的内…

2020-03-25 0条评论 2093点热度 0人点赞 SilverLining 阅读全文

设计模式系列文章:https://zhum.in/blog/category/notes/design-pattern Demo code:https://github.com/njZhuMin/BlogSampleCode 中介者模式 中介者模式(Mediator Pattern)又称为调解者模式或调停者模式。中介者模式使用一个中介对象来封装一系列的对象交互过程,使各对象之间不需要显式地直接相互调用,从而松散耦合,而且可以独立地改变它们之间的交互。属于行为型模式。 一个系统中,如果各层次对象之间存在大量的关联关系…

2020-03-22 0条评论 1806点热度 0人点赞 SilverLining 阅读全文

提出问题 我觉得做过 Java Web 项目的程序员,代码数量敲到一定程度的时候,都会产生这样的疑惑:MVC 层中的 Service 层,Dao 层的接口到底有什么用?是否是为了使用接口而使用接口? 不用接口并不代表就不能解耦,就不是 OOP 。 尤其是在事实上,99% 的场景都是接口与实现类严格一一对应的。在这种情况下,接口究竟有什么意义? 是为了使用 JDK 基于接口的动态代理吗?但基于 CGLib 的动态继承也同样可以实现 AOP,并且 Spring 本身也对两种技术都提供了支持,所以技术上的理由也同样是不充…

2020-03-08 0条评论 1659点热度 0人点赞 SilverLining 阅读全文

设计模式系列文章:https://zhum.in/blog/category/notes/design-pattern Demo code:https://github.com/njZhuMin/BlogSampleCode 享元模式 面向对象可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和 对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是为解决这类问题而诞生的。 享元模式 (Flyweight Pattern) 又称为轻量级模式,是对象池的一种实现。例如…

2020-03-08 0条评论 1570点热度 0人点赞 SilverLining 阅读全文

# 门面模式 门面模式(Facade Pattern)又称外观模式,提供了一个统一的高层次接口,用来访问子系统中的一群接口。 应用场景: - 当子系统越来越复杂时,使用门面模式提供统一简单的入口接口。(横向耦合) - 构建多层系统结构,利用门面对象作为每层的入口,简化层间调用。(纵向耦合)

2020-03-07 0条评论 2076点热度 0人点赞 SilverLining 阅读全文

Maven 镜像配置 创建全局配置文件~/.m2/settings.xml: <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 htt…

2020-03-04 0条评论 3144点热度 0人点赞 SilverLining 阅读全文

代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

2020-03-04 0条评论 1775点热度 0人点赞 SilverLining 阅读全文

单例模式(Singleton Pattern)是指确保一个类在任何情况下都只有一个实例,提供一个全局访问点并隐藏其所有的构造方法。 常见的单例模式场景有: - ServletContext - ServletConfig - ApplicationContext - DBPool

2020-03-01 0条评论 1643点热度 0人点赞 SilverLining 阅读全文
123456