框架-Spring及组件概念

Posted A.ArmStrong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了框架-Spring及组件概念相关的知识,希望对你有一定的参考价值。

1.什么是Spring

Spring框架是一款开源java平台。创建于2003年,轻量级框架(基本版本只有2M)。

使用Spring优点:

(1)     使用POJOs开发,不再需要EJB容器;如果必要,仅需要Tomcat或其他servlet容器

(2)     模块化组织,只需关注用到的模块

(3)     高度复用,ORM框架、日志框架、Quartz、JDK timers

(4)     测试便捷,POJOs注入测试数据

(5)     MVC web框架,可支持Struts或其他小众框架

(6)     Spring提供API,转化异常(JDBC, Hibernate, or JDO)为不检查异常

(7)     轻量化IoC容器,适用于CPU、Mem资源有限的机器

(8)     事务管理接口

 

DI技术   

Spring框架最著名的特征,IoC概念的典型实现。

AOP(Aspect Oriented Programming)面向切面编程

        Spring的另一个关键技术。cross-cutting concerns,即应用扩展只多点,且这些“横切关注点”与业务逻辑剥离。面向切面编程的例子:日志、声明式事务、安全、缓存等。

 

2.Spring 架构

Spring支持最大20多个模块,根据所需选择即可

Core Container

 

Core

提供最基本框架功能,包括IoC、依赖注入等

 

Bean

BeanFactory 工厂模式

 

Context

以Core和Bean模块为基础,访问任何对象的媒介;ApplicationContext

 

SpEL

provides a powerful expression language for querying and manipulating an object graph at runtime

 

 

Data Access/Integration

 

JDBC

提供JDBC抽象层

 

ORM

提供对象关联映射API 如JPA、JDO、Hibernate、iBatis的整合层

 

OXM

提供对象/XMLg关联映射抽象层,支持JAXB、Castor、XMLBeans、JiBX and XStream

 

JMS

Java Messaging Service

 

Transaction

支持 面向过程和声明式事务管理

 

 

Web

AOP

切面编程(定义方法拦截器切点,解耦功能代码)

 

Web-MVC

Model-View-Controller 实现

 

Web-Socket

support for WebSocket-based, two-way communication between the client and the server in web applications

 

Web-Portlet

provides the MVC implementation to be used in a portlet environment and mirrors the functionality of Web-Servlet module

 

 

其他

Web

web功能基础模块、IoC容器和面向web application context初始化

 

Aspects

AspectJ

 

Instrumentation

类装饰、类加载

 

Messaging

支持STOMP协议

 

Test

JUnit or TestNG frameworks

 

 

3.什么是容器

J2EE中容器充当中间件的角色,主要包括:WEB容器、EJB容器。

Web容器

        给应用程序组建(JSP、SERVLET)提供一个环境,JSP、Servlet直接与容器中的环境变量接口交互,不必关注其他系统问题。常用Web服务器:tomcat、webloggc、WEBSPHERE。这些容器接口遵守J2EE规范WEB APPLICATION 标准。

EJB容器(Enterprise java bean 容器)

        给运行其中的EJB组建提供各种管理功能(邮件服务、事务管理)。EJB容器与Web容器原理大致相同,区别是被隔离的外界环境,Web实现与基于Http请求交互(Servet不必关心Http细节,直接引用session、request、response),而EJB容器主要是与数据库、其他服务交互(EJB组件不必关心数据库连接速度、事务控制)。

 

4. EJB

官方解释:商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。

        J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise JavaBean)组件

EJB底层实现:

EJB 是运行在独立服务器上的组件,客户端是通过网络对EJB 对象进行调用的。在Java中,能够实现远程对象调用的技术是RMI,而EJB 技术基础正是RMI。通过RMI 技术,J2EE将EJB 组件创建为远程对象,客户端就可以通过网络调用EJB 对象了

5. 对象、类、包、组件、容器、框架概念

对象(Object):

      在java的世界里,对象是通过属性和方法来分别对应事物所具有的静态属性和动态属性.

类(Class):

      用于描述同一类型的对象的一个抽象的概念.

组件(component):

      组件也是抽象的概念,可以理解为一些符合某种规范的类组合在一起就构成了组件。他可以提供某些特定的功能。J2EE来说,有什么servlet,jsp, javabean,ejb都是组件。但实际他们都是类,只不过有他们特殊的规定。组件和类的关系:符合某种规范的类的组合构成组件

容器(Container):

容器也叫做组件容器,组件容器是一种比较特殊的组件,它可以包含其他的组件。我们可以把组件放在组件容器中。

框架(framework):

就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统.java框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。框架又叫做开发中的半成品,它不能提供整个WEB应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。我们熟知的Structs和Spring就是表示层和业务层框架的代表。

架构:

软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口()来实现

 

框架不是构架。架构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体,更偏重于技术涉嫌。对于同一架构(比如Web开发中的MVC),可以通过多种框架来实现。

 

以上是关于框架-Spring及组件概念的主要内容,如果未能解决你的问题,请参考以下文章

Spring框架由来及IOC的基本概念

转:一句话概括下spring框架及spring cloud框架主要组件

Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

Spring框架学习:Spring @Autowired实现自动装配

Spring核心概念

一文带你吃透Spring Cloud相关微服务组件及Spring Cloud Config框架