spring JDBC持久化设计

· spring

spring JDBC持久化设计 spring中大量运用到模板模式,简单回顾一下模板模式就是 抽象类中定义好产品的步骤,不同的子类去实现相同的步骤方法,客户端调用抽象类的方法,执行统一的产品步骤,从而返回结果有点类似于桥接模式的一半,将建造过程抽象出来,形成统一的模板方法。可以使用钩子方法改造模板方法流程,从而增加健壮性。 JdbcTemplate分析 使用代码 server: port:...

Read More →
#spring源代码

spring MVC分析

· spring

spring MVC分析 本章主要分析一下spring MVC的过程,主要从一下几个方面: spring MVC概述 如果要在web环境中使用IOC容器,需要Spring IOC在启动过程中把web容器导入。在这个过程中一方面处理Web容器的启动,另一方面通过设计特定的web容器拦截器将IOC容器加载到web环境中进行初始化。 web.xml文件描述 <servlet> <...

Read More →
#spring源代码

AOP源代码分析

· spring

AOP源代码分析 阅读spring的源代码,来查看spring是如何实现AOP增强的 被AOP代理的Bean对象创建过程 在普通bean的加载流程中,如果一个bean是被AOP拦截增强后doCreateBean方法返回的是CGLib动态代理类生成的对象 CGLib动态代理对象 未被AOP增强的对象 可以得出结论,spring是在bean的创建时期对bean就进行了增强。我们继续往下看 ...

Read More →
#spring源代码

AOP简单使用

· spring

AOP简单使用 AOP术语 通知(Advice) 名称 作用 前置通知 在目标方法调用之前执行通知功能 后置通知 在目标方法调用之后执行通知功能 返回通知 在目标成功执行之后调用通知 异常通知 在目标返回抛出异常后调用通知 环绕通知 通知包裹被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为 连接点 连接点是应用执行过程中能够插入切面的一个点...

Read More →
#spring源代码

普通bean对象的初始化流程

· spring

普通bean对象的初始化流程 在上文中分析ApplicationContext的refresh过程,在这过程中对于业务bean对象添加到Spirng容器的过程,在这个流程的最后一步骤就是初始化业务bean对象,下面这个业务bean对象的初始化流程进行分析; 整体执行流程 AbstractApplicationContext:refresh() -> finishBeanFactoryIni...

Read More →
#spring源代码

ApplicationContext容器的refresh过程

· spring

前言 在Spring框架中要说最重要的方法就是AbstrctApplicationContext.refresh()方法,在这个方法中完成对容器的刷新和bean对象的加载过程,下面就详细对这个方法进行分析; refresh()方法概述 @Override public void refresh() throws BeansException, IllegalStateException ...

Read More →
#spring源代码