spring家族

spring家族项目

image

基本模块

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式如下图:

image

组成 Spring 框架的每个模块都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

  • Spring Core:Spring 核心容器,提供 Spring 框架的基本功能,管理着Spring应用中bean的创建、配置和管理。

核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用DI将应用程序的配置和依赖性规范与实际的应用程序代码分开。

  • Spring Context:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。提供了一种框架式的对象访问方法,有些象JNDI注册器。

扩展了BeanFactory的概念,增加了对国际化、事件传播,以及验证等的支持,此外还提供了许多企业服务及对模版框架集成的支持;

  • Spring AOP:为Spring容器管理的对象提供了对面向切面编程的支持;

  • Spring DAO:该层封装了对数据库的访问,并且处理了其抛出的错误消息,同时还基于AOP模块提供了事务管理;

  • Spring ORM:Spring支持多种ORM框架,简化了数据库操作。

  • Spring Web :Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。

  • Spring MVC :MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

image

1、Core Container - 核心容器

spring-core:Spring中的核心工具类包。

spring-beans:Spring中定义bean的组件。

spring-context:Spring的运行容器。

spring-context-support:Spring容器的扩展支持。

spring-expression:Spring的表达式语言支持。

2、AOP - 面向切面编程

spring-aop:基于代理的AOP支持。

spring-aspects:集成Aspects的AOP支持。

3、WEB(MVC)

spring-web:提供web的基础功能。

spring-webmvc:提供springmvc的功能。

spring-websocket:提供web socket支持。

spring-webmvc-portlet:提供Portlet环境的支持。

4、Data Access/Integration - 数据访问/集成

spring-jdbc:提供对jdbc连接的封装功能。

spring-tx:提供对事务的支持。

spring-orm:提供对象-关系映射支持。

spring-oxm:提供对象-XML映射支持。

spring-jms:提供消息队列的支持。

5、Test - 测试

spring-test:提供对测试功能的支持。

实现原理

AOP

  • execution(* com.zdy..*(..)):com.zdy包下所有类的所有方法.

  • execution(* com.zdy.Dog.*(..)): Dog类下的所有方法.

具体详细语法,大家如果有需求自行google了,我最常用的就是这俩了。要么按照包来定位,要么按照具体类来定位.

作者:我又不是架构师

链接:https://juejin.im/post/5a55af9e518825734d14813f

Aspect Oriented Programming 面向切面编程,基于动态代理实现,默认使用的是JDK动态代理,可以很方便的插入;主要应用:事务、日志记录 、权限校验、审计

Spring 只是使用了与 AspectJ 5 一样的注解,但仍然没有使用 AspectJ 的编译器,底层依是动态代理技术的实现,因此并不依赖于 AspectJ 的编译器

IOC

Spring IOC的初始化过程:

image

Inversion of Control 控制反转,将对象的创建和依赖注入交给容器去做

  • BeanFactory 典型的工厂模式 最顶层的一个接口类,它定义了IOC容器的基本功能规范,有三个子类:ListableBeanFactory(可列表的)、HierarchicalBeanFactory(有继承关系的) 和AutowireCapableBeanFactory(自动装配规则),默认实现类是 DefaultListableBeanFactory

  • BeanDefinition

    • Bean对象在Spring实现中是以BeanDefinition来描述的,其继承体系如下:

      image
    • Bean 的解析主要就是对 Spring 配置文件的解析。这个解析过程主要通过下图中的类完成

image

你可能感兴趣的:(spring家族)