`

一、Spring源码分析——Spring框架

阅读更多

原创内容,转载请注明出处

1、Spring框架

Spring框架是一个分层架构,通过模块化划分,如下图,列出了主要的几个模块。


 核心容器:Spring核心容器提供了Spring框架的基本功能,核心容器的组件是BeanFactory,它是一个典型的工厂模式的实现。BeanFactory通过IOC控制反转将Bean的实例注入给对应的变量,简单说就是Bean的生成不需要自己new,让BeanFactory通过Java反射创建即可。

 

Spring上下文:Spring上下文是一个配置文件,向Spring提供上下文信息。

 

Spring Aop:Spring Aop模块将面向切面编程集成到Spring框架中,支持Java的动态代理和Cglib。

 

Spring Web:Spring Web模块为Web应用环境提供了一个Web上下文。可集成Struts、Struts2等框架。

 

Spring MVC:Spring Mvc模块是Spring构建Web应用程序的MVC实现。可和Spring其他模块完美结合使用,也可以单独使用,支持大量的视图技术,包括Jsp、Velocity、POI等。

 

Spring ORM:ORM模块支持目前市面大量的ORM框架的集成,包括Mybatis、Hibernate等。

 

Spring DAO:Spring DAO模块提供了一系列的DaoSupport类来简化数据库操作代码,比如JdbcDaoSupport、HibernateDaoSupport等。

 

2、IOC接口设计

IOC,控制反转模式,即不用自己创建对象,只需要在配置文件中描述类的特性,以及类与类之间的联系,最后通过BeanFactory工厂来获取对应的类的实例。

Spring IOC接口设计分两条设计路线,一条是包含基本IOC容器功能(BeanFactory),另外一种是除了包含基本IOC容器功能外,还添加了一些高级容器的特性(ApplicationContext)。

如下图是IOC接口类图

从以上接口类图可以看出基本IOC容器接口是BeanFactory,高级IOC容器接口ApplicationContext依旧是BeanFactory的子类。

1.在BeanFactory中实现了最基本的IOC功能,依赖注入getBean方法,和一些其他基本方法。

 

2.ApplicationContext通过继承MessageSource、ResourcePatternResolver、ApplicationEventPublisher、EnvironmentCapable接口,在BeanFactory简单的IOC容器基础上添加了许多高级容器的特性。也就是说基本上ApplicationContext除了包含IOC基本的功能外,还附加了更高级的功能,并且更好扩展性更强,应用中可以以ApplicationContext使用为主。

 

 3、AOP面向切面编程。

面向切面编程是一种编程技术,它允许动态给某个功能方法添加额外功能,使得在不修改原来功能方法的前提下,动态添加了额外功能。比如delete删除方法后需要增加log记录日志功能,使用Aop就可以将原来的删除方法和日志功能的各自实现拆分开来,符合设计原则的松散耦合特性。SpringAop是IOC的补充,可与IOC完美集成。

 

Sprig AOP的功能的典型实现代表是Spring事务管理,除此之外还可做日志功能和方法拦截等功能。

  • 大小: 68.1 KB
  • 大小: 62.7 KB
  • 大小: 4.7 KB
  • 大小: 12.3 KB
分享到:
评论

相关推荐

    二、Spring源码分析——BeanFactory

    《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...

    三、Spring源码分析——ApplicationContext

    《Spring源码分析——ApplicationContext》 在Java世界中,Spring框架是不可或缺的一部分,它以其强大的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,极大地...

    五、Spring源码分析——Spring Aop

    在Spring框架中,AOP主要通过代理模式实现,提供了声明式的通知(advises)和切面(aspects)。 Spring AOP分为两种代理方式:JDK动态代理和CGLIB代理。JDK动态代理基于接口实现,如果目标类实现了接口,Spring会...

    四、Spring源码分析——动态代理

    在Spring框架中,动态代理是实现AOP(面向切面编程)的核心技术之一。它允许我们在不修改原有代码的情况下,为方法添加额外的功能,如事务管理、日志记录等。本篇文章将深入探讨Spring中的动态代理机制,以及它是...

    spring源码阅读——1.spring-core-3.2.9

    《深入解析Spring Core 3.2.9》 在深入探讨Spring Core 3.2.9之前,我们先理解一下Spring框架的核心概念。Spring作为Java领域最...深入学习和理解其源码,将有助于提升我们的编程技巧,更好地利用Spring框架的优势。

    Spring5 源码分析(第 2 版) .zip

    《Spring5 源码分析(第 2 版)》是针对Spring框架第五个主要版本的深度解析著作,由知名讲师倾心打造,旨在帮助读者深入理解Spring框架的内部工作机制,提升对Java企业级应用开发的专业技能。本书涵盖了Spring框架的...

    Spring5 源码分析(第 2 版)-某Tom老师

    首先,我们要了解Spring框架的核心组件——依赖注入(Dependency Injection,简称DI)。在Spring5中,DI仍然是核心设计模式,它使得对象之间的依赖关系得以解耦,增强了代码的可测试性和可维护性。Tom老师的文档会...

    Spring源码解析.zip

    本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control,控制反转)、AOP(Aspect Oriented Programming,面向切面编程)以及Transaction(事务管理)的源码分析,帮助开发者更全面地...

    spring 源码中文注释

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。这份"spring 源码...

    Spring 源码分析文档----自用

    ### Spring 源码分析——设计模式篇 #### 一、引言 Spring框架作为Java企业级开发领域中不可或缺的一部分,其内部集成了多种设计模式,不仅有助于提高系统的可维护性和扩展性,还能够帮助开发者更好地理解和应用...

    Spring源码分析_Spring_IOC

    ### Spring源码分析_Spring_IOC:深入理解Spring的IOC容器机制 #### 基本概念与核心作用 在探讨Spring框架的核心组件之一——IOC(Inversion of Control,控制反转)容器之前,首先需要理解它在Spring框架中的角色...

    java8集合源码分析-mini-spring:手写Spring——从头实现一个小型Spring框架

    手动实现一个Spring框架 内容持续更新,详细教程欢迎关注我的博客 最近学习了一下spring的相关内容,所以也就想要照猫画虎地记录和实现一下spring的框架,通过阅读这些也希望能够消除对Spring框架的恐惧,其实细心...

    spring源码UML图

    《Spring框架源码分析——基于UML图的解读》 在深入探讨Spring框架源码之前,我们首先要理解什么是UML(统一建模语言)。UML是一种标准的图形化建模语言,用于软件设计和系统分析,它通过图表来表示系统的结构、...

    SpringBoot 源码解析——源码模块功能分析.docx

    SpringBoot 源码解析——源码模块功能分析 SpringBoot 源码解析是指对 SpringBoot 框架的源码进行深入分析和研究,以了解框架的内部机制和工作原理。源码模块是 SpringBoot 框架的核心组成部分,它们之间的交互和...

    一步步实现Spring框架(一)项目搭建

    而Spring的源码分析,可以帮助开发者更好地理解和利用这一强大的工具。 首先,我们要创建Spring框架的核心部分——IOC容器。这个容器是Spring框架的基石,负责对象的创建、配置和管理。在Spring中,我们可以使用XML...

    SpringBoot源码解析——BeanDefinitionLoader 源码分析.docx

    在源码分析中,我们首先看到`prepareContext`方法被调用,这是`SpringApplication`类中的一个重要方法,它负责初始化`ApplicationContext`(应用上下文)并为后续的bean加载做准备。 `prepareContext`方法做了以下...

    spring高级源码分析

    《Spring高级源码分析》是针对Java开发人员深入理解Spring框架的一份宝贵资源。Spring作为Java企业级应用的基石,其强大的功能和灵活性源于其深厚的设计理念和精巧的源码实现。本分析将深入探讨Spring的核心机制,...

    spring源码解析和mybatis学习

    6. **Spring源码分析**:通过阅读源码,理解Spring框架的工作原理,增强对框架的深入理解。 接下来,我们转向MyBatis,这是一个轻量级的持久层框架,它提供了灵活的SQL映射机制,使得数据库操作变得简单。"MyBatis3...

    ProSpring——Spring专业开发指南

    《ProSpring——Spring专业开发指南》是一本深入探讨Spring框架的专业书籍,旨在帮助开发者全面理解和掌握Spring的核心概念、功能及最佳实践。通过阅读本书,你可以深入理解Spring如何为Java应用程序提供强大的依赖...

    小读spring ioc源码(一)——整体介绍

    在深入理解Spring框架的过程中,源码分析是不可或缺的一环。本文将对Spring的IOC(Inversion of Control,控制反转)容器的源码进行初步探讨,旨在帮助读者从整体上把握其设计理念和实现方式。 Spring的核心就是IOC...

Global site tag (gtag.js) - Google Analytics