【码上Java】深入Spring学习-01

第一章 Spring基础介绍

Spring是一款用于简化企业级Java应用开发的分层开源框架,它有着强大的扩展、融合能力,善于将各种单层框架完美地糅合在一起,并建立一个完整体系,统一、高效地构造可提供企业级服务的应用系统。

优点

  • 降低J2EE的使用难度,并且方便集成各种框架。
  • 推荐及大量使用面向对象的设计思想,是学习Java源码的经典框架。
  • 面向接口编程,而不是面向类编程,不断地利用Java的多态特性及良好的面向对象设计思想,来降低程序的复杂度及耦合度。
  • 提供测试框架,并且支持集成其他测试框架,使测试更加容易,对测试程序的编写也更加简单、高效。

1.1 Spring核心结构

Spring是一个分层非常清晰并且依赖关系、职责定位非常明确的轻量级架构,主要分为八大模块:数据处理模块、Web模块、Aop模块、Aspects模块、Instrumentation模块、Messaging模块、Core Container模块和Test模块。

简解

  • 数据处理模块

该模块由JDBC、Transactions、ORM、OXM和JMS等组成。

JDBC模块提供了不需要编写冗长的JDBC代码和解析数据库厂家特有的错误代码的JDBC-抽象层。

  • Web模块

该模块有Web、WebSocket、Servlet和Portlet等模块组成。

Servlet模块也被称为SpringMVC模块,包含了Spring的MVC和REST Web Service实现的Web应用程序。

  • AOP模块

该模块是Spring的***模块,也是Spring的核心模块,它巧妙地利用了JVM动态***和CGLIB动态***面向过程编程,来实现业务零侵入、低耦合的效果。

常用的事务管理就是利用Spring AOP模块实现的。

  • Aspects模块

该模块提供了与AspectJ(一个功能强大并且成熟的面向切面编程的框架)的集成,它扩展了Java语言,定义了AOP语法(俗称织入点语法),持有一个专门的编译器来生成遵守Java字节编码规范的Class文件,使得字节码生成技术来实现***。

Spring自带AOP模块,并且集成了AspectJ框架。

  • Instrumentation模块

该模块是Spring对其他容器的集成及对类加载器的扩展实现,其子模块sring-instr ument-tomcat实现了Tomcat Instrumentation***功能。

  • Messaging模块

该模块是从Spring集成项目中抽象出来的,类似于基于注解 的Spring MVC编程模块,包含一系列消息与方法的映射注解。

  • Core Container模块

该模块也是Spring核心容器模块,是Spring的根基,由Beans、Core、Context、SpEL四个子模块组成。

  • Beans模块和Core模块提供框架的基础部分,包含IOC(控制反转)和DI(依赖注入)功能,使用BeanFactory基本概念来实现对Bean的管理,是所以Spring应用的核心。
  • context模块建立在Core模块和Beans模块的坚实基础之上,并且集成了Beans模块的特征,增加了对国际化的支持,也支持Java EE特征。ApplicationContext接口是Context模块的焦点。
  • SpEL提供了强大的表达式语言来查询和操作运行时的对象。
  • **Test模块 **

该模块支持通过组合JUnit或TestNG来进行单元测试和集成测试,并且提供了Mock Object方式进行测试。

1.2 Spring领域模型

  • 容器领域模型(Context模型)

也叫作上下文模型,是Spring的掌控域,对Spring核心领域模型进行生命周期的管理,也可以称为Spring的服务域,因为它为整个应用服务。

  • 核心领域模型(Bean模型)

体现了Spring的一个核心理念,即“一切皆Bean,Bean即一切”。Bean是应用运行时可执行的最小函数式单元,也可以是Java中的一个函数对象,更倾向于一种对象式的为某种特殊行为而生的可复用的概念。不受职责或者大小的限制。Bean模型是Spring的核心服务实体域,是应用要操作的本身,是每个线程的真正的执行者,也是整个回话生命周期的管理者,还是Spring对外暴露的核心实体。

  • ***领域模型(Advisor模型)

spring***的执行依赖于Bean模型,但是Spring***的生成、执行及选择都依赖于spring自身定义的Advisor模型,只有符合Advisor模型的定义,才能生成Spring***。

全部评论

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务