Spring是一个免费开源的框架.它可以处理很多事情.当提及它核心部分的时候,SPRING有两个主要的特点:依赖注入和面向空间编程.
Spring起源于一个BEAN.
在1996年是,JAVA这个技术还在起步,很有前途,让人兴奋的阶段.因为applet能建立动态的WEB程序,所以很多程序员都开始学习JAVA.经过一段时间的学习,这些程序员发现,除了用JAVA可以做一些变戏法的文字,他们还学了很多别的东西.和以外的语言不同,JAVA使得用离散的部分组合成为WEB程序的想法成为了现实.这些程序员,因为APPLET进入了JAVA的时候,但却是因为组件使得他们停留在JAVA的世界里.
在1996年12月,SUN公司发布了JAVABEAN1.00-A规格.JAVABEANS定义了一个用于JAVA建模的软件组件.这个规格定义了一套代码策略.这代码策略使得单一的JAVA对象可以在复杂的WEB程序中被重用,并且也很容易被组合.
一个完善的程序通常需要一些服务,比如说业务管理,安全性能,分配计算,这些服务都不是由JAVABEANS规格直接提供的.因此在1998年3月的时候,SUN发布了EJB规格.虽然它提供了企业化的服务,但却没有JAVABEAN那么简单.实际上,除了名字有点相似,他们的规格基本不同.
虽然很多基于EJB的程序很成功,但是EJB却没有达到它初始的目的:简化企业开发.现今,JAVA组件的开发已经回到了它的根源.新的编程技术: 面向空间和依赖注入使得JAVABEAN比EJB更加强大.这些技术提供POJOs很像EJB的宣布的编程模型,但没有EJB那么复杂.你使用一个简单的JAVABEAN就足够了,就不需要再选择那笨拙的EJB.
什么是SPRING?
Spring是Rod Johnson创建的.它创建SPRING是为了描述企业程序开发的复杂.SPRING使得那些一定要用EJB来做的事可以用PLAIN-VANILLA JAVABEAN来实现,任何一个程序应用了SPRING,都会变的更低藕,更简化....
如先前提到的,SPRING的核心是轻量的依赖注入和面向对象的容器.下面我们就一起分析下SPRING的这些核心:
1.轻量:
就大小和开销来说,SPRING是轻量的.SPRING 框架可以分配到一个仅2.5MB的jar文件.并且SPRING进程的开销是微不足道的.此外,在SPRING开发的程序中的对象,通过是没有依赖性的.
2.依赖注入:
SPRING通过依赖注入来解藕.当应用了DI,对象会给告知相关的对象而无须建立并查询他们.你可以把ID看做是JNDI的反向应用.
3.面向空间:
SPRING的出现丰富了面向空间的支持.面向空间通过把业务逻辑从系统服务中分离来实现有聚合性的开发.
4.容器:
SPRING包含并且管理程序对象的生命周期和配置,所以他是一个容器.在SPRING中,你可以声明你的每个程序对象是如何建立的,如何配置的,他们之间如何关联的.
5.框架:
SPRING使得用简单的组件配置和组合复杂的程序成为了可能.在SPRING,程序的对象通过声明进行组合,通常是以XML文件进行声明.SPRING提供了很多基础的功能(如:业务管理,表现层整合,等),把逻辑开发留给了开发者.
重申一下,当你把SPRING拆成基本部分的时候,你会得到一个帮助你解藕的框架.虽然SPRING可以做很多,但是解藕的特性是在程序中使用SPRING的重要因素.
SPRING模型
SPRING框架是由一些知名的模型组合而成的.开发的时候,你不一定要选择全部的模型,而是选择你需要的模型.实际上,SPRING还提供了一些整合点来和其他库和框架整合,节省了很多开发时间.
所有的SPRING模型都是基于CORE容器.CORE容器定义了BEAN是如何建立,配置,和管理的--SPRING的具体细节.当你配置程序的时候,你都会暗中地使用到这些类.但做为程序员,你感兴趣的是其他模型来制衡容器提供的服务.这些模型会提供框架.伴随这些框架,你可以开发程序服务.比如AOP和PERSISTENCE
CORE容器
CORE容器提供了SPRING框架的基础功能.这个模型中包含了BEANFACTORY. BEANFACTORY是SPRING容器的基础,同时SPRING' ID也是基于它.
程序背景模型:
这个模型是基于CORE容器的.CORE容器的BEANFACTORY,适得SPRING成为了容器,但程序背景模型使得SPRING成为了框架.这个模型扩张了BEANFACTORY的概念,添加了对I18N信息,程序生命周期事件,已经验证的支持.
此外,这个模型提供了很多企业化的服务.(EMAIL,EJB整合,JNDI访问,等)
SPRING面向空间编程模型:
在SPRING的AOP模型中,为面向空间编程提供了大量的支持.对于使用了SPRING的程序,这个模型为你开发自己的空间,提供了基础.和DI相同,AOP的支持能给程序对象解藕.
JDBC抽象和DAO模型:
通过这个模型,你使得数据库的代码变得简洁并防止了由于关闭数据资源引发的一些问题.
此外,这个模型使用AOP模型来给SPRING程序的对象提供业务管理.
ORM整合模型:
SPRING的ORM基于DAO支持,提供了连接到一些知名的ORM框架的钩子.包括:HIBERNATE,JAVA PERSISTENCE API,JAVA DATA OBJECTS,IBATIS SQL MAPS.
JMX模型:
把程序中的BEAN以JMX MBEANS陈列,这样一来,就能监视和重新配置这正在运行的程序.
JAVA EE CONNECTOR API(JCA):
为JAVA程序和企业化的信息系统整合提供了一个标准的方式.包含数据等.
MVC模型:
MVC把UI从程序逻辑中分离了.
REMOTING模型:
不是所有的程序都是单独运行的,通常,为了使程序运行,影响其他程序中的函数是必要的.REMOTING模型,把程序对象的函数暴露为远程对象.如果你需要访问远程对象,REMOTING模型会把远程对象捆绑到本地的POJOs.
发表于 @ 2008年01月19日 10:03:00|评论(loading...)|编辑