框架-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及组件概念的更多相关文章
- Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建
一. Spring 框架简介及官方压缩包目录介绍 主要发明者:Rod Johnson 轮子理论推崇者: 2.1 轮子理论:不用重复发明轮子. 2.2 IT 行业:直接使用写好的代码. Spring 框 ...
- JavaWeb_(Spring框架)Spring中IoC与DI概念入门
Spring是于2003 年兴起的一个轻量级的Java 开源框架,它由Rod Johnson创建.传统J2EE应用的开发效率低,Spring作为开源的中间件,提供J2EE应用的各层的解决方案,Spri ...
- [Spring框架]Spring开发实例: XML+注解.
前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...
- Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World(转发)
[JSP]Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World 来源:http://blog.csdn.net/zhshulin/article/de ...
- spring的一些概念及优点
Spring是一个轻量级的DI和AOP容器框架.说它轻量级有一大部分原因是相对于EJB的(虽然本人从来没有接触过EJB的应用),但重要的是Spring是非侵入式的,基于Spring开发应用一般不依赖于 ...
- Spring框架 - Spring和Spring框架组成
Spring框架 - Spring和Spring框架组成 Spring是什么?它是怎么诞生的?有哪些主要的组件和核心功能呢? 本文通过这几个问题帮助你构筑Spring和Spring Framework ...
- 一篇文章带你掌握主流基础框架——Spring
一篇文章带你掌握主流基础框架--Spring 这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容 那么简单说明一下Spring的必要性: Spring技 ...
- Spring AOP基本概念
Spring AOP基本概念 目录 Spring AOP定义 AOP基本术语 通知类型 AOP定义 AOP基本术语 切面( Aspect ):一个能横切多个对象的模块化的关注点.对Spring AOP ...
- spring技术核心概念纪要
一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...
随机推荐
- UVA - 10891 Game of Sum (区间dp)
题意:AB两人分别拿一列n个数字,只能从左端或右端拿,不能同时从两端拿,可拿一个或多个,问在两人尽可能多拿的情况下,A最多比B多拿多少. 分析: 1.枚举先手拿的分界线,要么从左端拿,要么从右端拿,比 ...
- Oracle SQL触发器
一.触发器 触发器是一个数据库对象,是一个特殊的过程,当特定的时间发生时隐式地执行.比如在一个表中发生插入.更新或删除的时间,或者 CREATE.ALTER 这样的数据定义语句执行时,触发器会隐式执行 ...
- 二十九、SAP中输出漂亮的表格
一.代码如下 二.输出效果如下 *&---------------------------------------------------------------------* *& ...
- ES6 之 Proxy
概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改. Proxy 可以理解在目标对象架设一个“拦截”层外界对该对象的访问都必须先通过这层拦截,因此提供了一种机制可以对外界的访问进行 ...
- 第八篇Django分页
Django分页 1.复杂版 data = [] , ): tmp = {"id": i, "name": "alex-{}".format ...
- 动态添加,删除class样式
function hasClass(obj, cls) { //class位于单词边界,判断class样式是否已经存在 return obj.className.match(new RegExp('( ...
- UVA - 10791 Minimum Sum LCM(最小公倍数的最小和)
题意:输入整数n(1<=n<231),求至少两个正整数,使得它们的最小公倍数为n,且这些整数的和最小.输出最小的和. 分析: 1.将n分解为a1p1*a2p2……,每个aipi作为一个单独 ...
- POJ 1423:Big Number 求N的阶乘的长度 斯特林公式
Big Number Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27027 Accepted: 8626 Descr ...
- POJ 3071:Football
Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3600 Accepted: 1844 Descript ...
- 3 react 简书 添加 头部搜索动态效果
1. 添加动态效果组件 yarn add react-transition-group 2. 修改 src/common/header/index.js import React, {Componen ...