Spring核心
郭旭升 Lv6

特性

  • 非侵入
  • 控制反转
  • 依赖注入
  • 容器
  • 组件化
  • 一站式

核心概念

控制反转(IoC)、面向切面编程(Aop)
依赖注入(DI)

核心模块

开发过程中可以根据需求有选择性地使用所需要的模块。

  • Core Container (核心容器:构建其他模块建立的基础,组成:Beans、Core、Context、SpEL)
    Bean模块: 提供框架的基础部分,包括控制反转和依赖注入。
    Core核心模块: 封装了Spring的底层部分,包括资源访问、类型转换及一些常用工具类。
  • Data Access/Integration(数据访问/集成)
    JDBC 模块: JDBC的样例模板
    ORM 模块
    OXM 模块
    JMS 模块
    Transaction 事务模块:支持编程和声明式事务管理。
  • Web (网络)
    Web 模块:提供了基本的Web开发集成特性
    Servlet 模块:提供了一个Spring MVC Web框架实现。
    WebSocket 模块
    Webflux 模块
  • AOP、Aspects、Instrumentation和Messaging
    Core container之上的是Aop、Aspects等模块。
    Aop 模块:提供了面向切面编程实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,而且动态把这些功能添加到需要的代码中, 各司其职,降低业务逻辑和通用功能的耦合。
    Aspects 模块: 提供了AspectJ的集成,是一个强大功能且成熟的面向切面(AOP)框架。
    Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
    messaging 模块:对消息传递体系结构和协议的支持。
    jcl 模块:对日志框架集成的模块。
  • Test 模块
    Spring 支持Junit和TestNG 测试框架,而且额外提供了Spring的测试功能,比如Web框架测试,模拟Http请求的功能。
    包含 Mock Objects, TestContext Framework, Spring MVC Test, WebTestClient。

Spring核心组件

Spring的核心组件有五个:

  1. Spring IOC:控制反转(IoC)和依赖注入(DI)框架。

  2. Spring AOP:面向切面编程(AOP)框架。

  3. Spring DAO:数据访问对象(DAO)框架。

  4. Spring Context:应用上下文框架。

  5. Spring MVC:模型视图控制器(MVC)框架。

  6. IOC容器:IoC容器是Spring的核心,它管理着整个Spring框架的组件。通过IoC容器可以将项目中的对象解耦,实现面向切面编程(AOP),它可以在不改变代码的情况下,对程序进行非常精细的控制。

  7. AOP:AOP是Spring的另一个核心组件,它是用于实现切面编程(AOP)的基础技术。AOP可以将非核心业务逻辑从业务逻辑中分离出来,并进行封装,从而有效地减少代码的冗余,提高代码的可重用性,并有助于系统的维护和更新。

  8. Spring MVC:Spring MVC是Spring框架的另一个核心组件,它是基于Java EE的MVC模式的Web框架,它可以将Web请求映射到控制器。

Spring工作原理

Spring工作原理是通过IOC容器来完成的,IOC容器用Java语言的反射机制来创建一个实例,然后通过DI来连接组件,使得容器中的每一个组件都可以与其他组件交互。同时,容器中的每一个组件都可以通过配置文件来设置属性,从而实现松耦合的效果。

IOC 和 AOP

IoC在spring中的实现是使用了一个容器。用来管理对象的生命周期和他们的依赖。 这个容器可以创建对象,注入依赖,销毁对象。 这样就很灵活也更强了模块性。

AoP 允许将横切关注点与业务逻辑分开。 spring使用了Aspects来实现AOP,用它来封装了横切关注的模块。Aspects可以应用于多个对象,允许重用代码,减少重复。

 Comments

Related Issues not found

Please contact @mvpsheng to initialize the comment