框架-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版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...
随机推荐
- ELK之 elasticsearch ES集群 head安装
最近项目用到 jenkins ELK 也在一次重新学习了一次 jenkins 不用说了 玩得就是 插件 + base---shell , ELK 这几年最流得log收集平台,当然不止 ...
- Golang的标准命令简述
Golang的标准命令简述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Go本身包含了大量用于处理Go程序的命令和工具.go命令就是其中最常见的一个,它有许多子命令,接下来就跟随 ...
- yum对于包和软件的安装、升级和卸载总结
在Centos下yum的安装.升级和卸载 一.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的.安装的命令是,yum install ~,yum会查询数据库,有无这一软件包,如果 ...
- node.js - 定义全局变量
1,定义全局变量 app.set('name','八戒') 2,获取全局变量 app.get('name')
- Java8集合框架——LinkedHashMap源码分析
本文的结构如下: 一.LinkedHashMap 的 Javadoc 文档注释和简要说明 二.LinkedHashMap 的内部实现:一些扩展属性和构造函数 三.LinkedHashMap 的 put ...
- 2-Java基本数据类型和运算符
目录 Java基本类型 Java数据类型转换 Java运算符 1.Java基本类型 1.1.boolean布尔 - 只有true和false两种值,在内存中占1bits(位),默认是false 1.2 ...
- ZOJ 3791 An easy game DP+组合数
给定两个01序列,每次操作可以任意改变其中的m个数字 0变 1 1 变 0,正好要变化k次,问有多少种变法 dp模型为dp[i][j],表示进行到第i次变化,A,B序列有j个不同的 变法总和. 循环 ...
- postman测试带有json数据格式的字段
测试六个字段 普通字段: ModelCode 普通字段: MmodelCode 普通字段: ModelTagKey 普通字段: ModelTagValue 普通字段: ModelTagType jso ...
- css mix-blend-mode 颜色滤镜混合模式
CSS3混合模式种类 在CSS3混合模式中,目前仅有16种:normal,multiply,screen,overlay,darken,lighten,color-dodge,color-burn,h ...
- 13 装备的添加和移除(Unity3D)
本案例主要实现功能如下:1.创建UI界面,包含两个装备栏,四个武器选择栏以及显示人物的属性的文本框2.每一个装备都有自己的属性(AD/AP/AR/MP)3.人物也有自己的基础属性(AD/AP/AR/M ...