SSM-Spring基础介绍:领域模型、核⼼架构
Spring 基础介绍:领域模型、核⼼架构
Spring 是⼀款⽤于简化企业级Java应⽤开发的分层开源框架,它有着强⼤的扩展、融合能⼒,善于将各种单层框架完美地糅合在⼀起,并建⽴⼀个完整体系,统⼀、⾼效地构造可提供企业级服务的应⽤系统。
优势主要在于:
降低J2EE使⽤难度,⽅便集成各种框架
推荐以及⼤量使⽤了⾯向对象的设计思想,是学习Java源码的经典框架
⾯向接⼝编程,⽽不是⾯向类的编程,不断地利⽤Java的多肽特性以及良好的⾯向对象设计思想,来降低程序的复制杂及耦合度提供了测试框架,并且⽀持集成其他测试框架,使测试更容易,对测试程序的编写也更简单,⾼效
ssm框架技术简介Sprng 核⼼结构
Spring是⼀个分层⾮常清晰并且以来关系、责任定位⾮常明确的轻量级架构,主要分为8⼤模块:数据处理模块(Data
Access/Integration)、Web模块、AOP(Aspect Oriented Programing)模块、Aspects模块、Instrumentation模块、Messageing模块、Core Container模块和Test模块。通过这些,达到了零侵⼊的轻量级框架。
模块分析
1.数据处理模块
模块由JDBC、Transaction、ORM、OXM和JMS等模块组成
JDBC模块提供了不需要编写冗长的JDBC代码和解析数据库⼚商特有的错误代码的JDBC-抽象层
Transactions模块⽀持编程呢个和声明式事务管理
ORM模块提供了流⾏的Object-Relational Mapping(对象-关系映射)API集成层,包含JAP、JDO和Hibernate等ORM框架。Spring 对ORM的⽀持和封装主要体现在三个⽅⾯:
⼀致的异常处理体系结构,对第三⽅ORM框架抛出的专有异常进⾏了包装
⼀致的DAO抽象的⽀持,为每个框架都提供了模板类来简化和封装常⽤操作,例如JDBCSupport、HibernateTemplate等
Spring的事物管理机制,为所有数据访问都提供了⼀致的事务管理
OXM模块提供抽象层,⽤于⽀持Object/XML mapping(对象/XML映射)的实现,例如 JAXB、Castor、XMLBeans、JiBX和XStream等
JMS模块(Java Messageing Service)包含⽣产和消费信息的功能
2.Web模块
该模块由Web、WebSocket、Servlet和Portlet等模块组成
Web模块提供了⾯向Web开发的集成功能
WebSocket模块提供了⾯向WebSocket开发的集成功能
Servlet模块(也被称为SpringMVC模块)包含Spring的Model-View-Controller(模型-视图-控制器,简称MVC)和REST Web Services实现的Web应⽤程序。Spring MVC框架使 Domain Model(领域模型)代码和Web Form(⽹页)代码实现了完全分离,并且集成了Spring Framework的所有功能。
Portlet模块(也被称为Portlet MVC模块)是基于Web和Servlet模块的MVC实现。Portlet和Servlet的最
⼤区别是对请求的处理分为Action阶段和Render阶段。在处理⼀次HTTP请求时,在Action阶段处理业务逻辑相应并且当前逻辑处理只被执⾏⼀次;⽽在Render 阶段随着业务的定制,当前处理逻辑会被执⾏多次,这样就保证了业务系统在处理同⼀个业务逻辑时能够进⾏定制性相应页⾯模板渲染。
3.AOP模块
该模块是Spring的代理模块,也是Spring的核⼼模块,巧妙利⽤了JVM动态代理和CGLIB动态代理⾯向过程编程,来实现业务零侵⼊、低耦合的效果。为了确保Spring与其他AOP框架的互⽤性,Spring AOP模块⽀持基于AOP联盟定义的API,也就是Aspect模块,与Spring IoC模块相辅相成。其中,我们熟知且常⽤的事物管理就是利⽤SpringAOP模块实现的。Spring AOP模块及Spring良好的架构设计及扩展性,使Spring可以融合基本上所有的模块及其他框架,成为真正的集⼤成者。
4.Aspects模块
该模块提供了与AspectJ(功能强⼤且成熟的⾯向切⾯编程的框架)的集成,它扩展了Java语⾔,定义了AOP语法(俗称织⼊点语法),持有⼀个专门的编译器来⽣成遵守Java字节编码规范的Class⽂件,使⽤字节码⽣成技术来实现代码。
Spring⾃带AOP模块,并且集成了AspectJ框架,使原AspectJ使⽤者可以快速掌握Spring框架,这同样提现了Spring⾼融合的特性。
5.Instrumentation模块
该模块是Spring对其它容器的集成及对类加载器的扩展实现,其⼦模块Spring-instrument-tomcat
实现了Tomcat Instrumentation代理功能。
6.Messaging模块
该模块是从Spring集成项⽬(Message、MessageChannel、MessageHandler及其他基于消息应⽤的基础模块)中抽象出来的,类似于基于注解的SpringMVC编程模块,包含⼀系列消息与⽅法的映射注解。
7.Core Container模块
该模块(也叫Spring核⼼容器模块)是Spring的根基,有Beans、Core、Context、SpEL四个⼦模块组成,这四个⼦模块如下所述。
Beans模块和Core模块提供框架的基础部分,包含IoC(控制反转, Inversion of Control)和DI(Dependency Injection依赖注⼊)功能,使⽤BeanFactory基本概念来实现容器对Bea的管理,是所有Spring应⽤的核⼼⽀撑,是运⾏的根本保证。
Context(包含Spring-Conytext 和Spring-Context-Support两个⼦模块)模块建⽴在Core模块和Bean模块的坚实基础之上,并且集成了Beans模块的特征,增加了对国际化的⽀持,也⽀持Java EE的特性。ApplicationContext接⼝是Context模块的焦点。
Spring-Contex-Support模块⽀持集成第三⽅常⽤库到Spring应⽤上下⽂中,例如缓存(EhCache、Guava)、调度Scheduling框架(CommonJ、Quartz)及模板引擎(FreeMarkder、Velocity)。
SpEL模块(Spring-Expression Language)提供了强⼤的表达式语⾔来查询和操作运⾏时的对象。
8.Test模块
该模块⽀持通过组合JUnit或TestNG来进⾏单元测试和集成测试,并且提供了MockObject(模仿对象)⽅式进⾏测试。在该模块中定义了注释,例如@ContextConfiguration、@WebApplication、@ContextHierarchy、@ActiveProfiles,可以被⽤作元注释来创建⾃定义注解并避免整个测试套件的重复构造。
Spring 领域模型
Spring 领域模型有三种:
1.容器领域模型(Context模型): 也叫作上下⽂模型,是Spring的掌控域,对Spring核⼼领域模型进⾏⽣命周期管理,也可以将其称为Spring的服务域,因为它为整个应⽤服务。
2.核⼼领域模型(Bean模型):提现了Spring的⼀个核⼼理念,即⼀切皆Bean,Bean即⼀切。Bean是应⽤运⾏时可执⾏的最⼩函数式单元,可以是⼀个属性单元,也可以是Java中的⼀个函数对象,更倾向于⼀种对象式的为某种特殊⾏为⽽⽣的可服⽤的概念,不受职责或者⼤⼩的限制。例如Spring上下⽂是⼀个Bean,⼀个简单的描述型的对象也是⼀个Bean。Bean模型是Spring的核⼼服务实体域,是应⽤要操作的本⾝,是每个线程的真正执⾏者,也是整个会话⽣命周期的管理者,还是Spring对外暴露的核⼼视图。
3.代理领域模型(Advisor模型):Spring代理的执⾏依赖于Bean模型,但是Spring代理的⽣成、执⾏及选择依赖于Spring⾃⾝定义的Advisor模型,只有符合Advisor模型的定义,才能⽣成Spring代理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。