spring家族

spring家族

2018-09-28  本文已影响81人  味道_3a01

spring家族项目

image

基本模块

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

image

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

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

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

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

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

作者:我又不是架构师

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

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

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

IOC

Spring IOC的初始化过程:

image

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

image
上一篇 下一篇

猜你喜欢

热点阅读