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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 14,216评论 6 86
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 【感恩教育】+我的青椒学习之旅 我,一位在教育战线工作25年的老教师,日复一日年复一年的循规蹈矩模式让我感到职业倦...
    陕县2012杨海红阅读 1,481评论 0 1
  • 说起荔枝,我相信很多的人都知道。它是一种时令水果,主要生产在我国的热带省份内,广东、广西和福建都盛产。听说四川也产...
    笨笨的成长之路阅读 2,773评论 1 0
  • 清晨,街上是静谧的。当第一缕晨光射穿薄雾,街上便迎来了一个温馨的晨。小朋友们陆陆续续到达学校门口啦! 数学智能:《...
    红黄蓝图图班2阅读 1,436评论 0 0

友情链接更多精彩内容