Java EE规范及其单榀框架规范要求会被淘汰吗

疯狂软件对Oracle放弃Java EE的看法
疯狂软件对Oracle放弃Java EE的看法
近日网络上出现了一些关于Oracle将要放弃Java EE的说法,在Java行业引起不小的关注,甚至有些人开始担心Java会不会就此消亡,但事实上这不过是杞人忧天,疯狂软件教学总监李刚根据多年来 Java行业的从业经验,对此提出以下几点分析抛砖引玉,供广大Java从业者参考。
第一点:Oracle根本没有力量左右Java发展
自从Java发展壮大以来,无论是以前的Sun公司,还是后来Oracle公司,一直都无力左右Java的发展:实际上Java的规范制定,都需要通过JCP审核,一些新机制、新功能往往并不是Oracle想加就加的,Java是一个庞大的生态圈,由庞大的社区力量在推动Java的发展。
Java本身有太多的规范都是来自社区的。世界上大量开源组织和公司,为Java贡献了非常多的专利和代码,每次JavaOne大会都是全世界Java界的圣会,汇聚一堂讨论、决定Java的走向和发展。
Java世界,可以说正左右着全球的发展,全球所有顶级的、核心的项目,绝大部分都是基于Java做的,即使不是完全基于Java,也和Java有千丝万缕的关系。深入最深的是美国。美国军方绝大部分的控制系统、甚至航天控制系统,都是基于Java或者和Java相关的。
除此之外,包括世界上所有的银行、通讯、航空、电力、交通、公共安全等领域的核心系统,也都是基于Java的,如果完全放弃Java,等同于把世界上所有的这些应用系统全部要替换掉,哪个公司、哪个团体有这个能力?如果这些系统全部不能运行,人类社会等同于重回到传统时代!
如果放弃Java,你不能从银行取钱、不能在线买飞机票、火车票、不能在线购买商品、不能刷公交卡、不能打电话……甚至连你的身份证信息都不复存在!
有人说:Java不赚钱,因为Java规范是开放的,所以Oracle才想要放弃。但如果真的不赚钱,那么Oracle为何要和谷歌因为Java的专利而打官司呢?
第二点:即使Oracle放弃Java,其他的公司会乐意继续扛起Java的大旗
先说现在正在和Oracle打官司的谷歌,正是因为Java的各种专利纠纷,如果Oracle真的愿意放弃Java,那么谷歌将首先表示欢迎、并非常乐意继续领导Java的发展。
即使谷歌不想要Java,光是国内的那些巨头,个个都想要Java,以便对自己的产品进行更深度的定制,现在因为要定制自己的产品。此外,能肩负扛起Java大旗的风光,国内软件巨头都不差钱,他们绝对非常乐意去做这件事情。不过话说回来,美国政府应该不会允许Java主导权落入中国,所以这一点我们只能是空想。
第三点:Oracle可能放弃Java EE,但不会放弃Java
Java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导Java的发展,于是Java EE曾经引领了企业级应用的开发。
但随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。相反,Java官方制定的各种Java EE规范反而不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用S他们制定了JPA规范,但实际企业开发往往还是喜欢直接用 Hibernate、MyBatis。
现代企业级应用常用的各种框架和工具,比如Struts 2、Spring、Hibernate、jBPM、Activiti、Lucene、Hadoop、Drools、CXF等这些大家耳熟能详的组件,全部都不是来自Oracle官方,但是却在企业应用中开发经常用到的。
现在企业里面,真正常用的Java EE规范有什么?Servlet、JSP、JMS、JNDI。这些技术都只是充当了一个程序的入口而已。
Oracle之所以可能考虑放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以Oracle可能放弃这种吃亏不讨好的事情。
但Java不同,2016年6月,Java在商业语言排行榜上的市场份额将近21%,庞大到恐怖的市场份额,背后隐藏着巨大各种专利使用费和盈利商机,任何一个理智的公司都不会放弃这个会下金蛋的母鸡。
第四点:从C的历史来看Java,Java绝不会过时
C语言是一个诞生于上个世纪70年代的编程语言,在AT&T的贝尔实验室里面,由一个想玩游戏的老伙伴整出来的。
后来随着社区力量的介入,C形成了国际标准,参与其中的厂商、开发者不计其数。贝尔实验室早已不复存在,连AT&T也早已解体,但C语言依然坚挺,偶尔还跑到Java的前面,排名第一!
C发展到现在,已经形成了整个软件、硬件产业上下级纽带,绝大部分硬件设备的固件、驱动程序都是C语言写的。我所知道的操作系统的内核,也都是基于C语言。如果换掉C语言,现在电脑会变成裸机,可能还不如一堆废铁。
Java现在的情形,和C非常相似:Java已经深入到世界的骨髓。正如前文指出的:从美国的航空航天、军方控制系统,到日常生活的银行、通讯、电力、交通、公共安全等领域的核心系统,绝大部分都是基于Java开发。正如世界无法淘汰C一样,世界也无法淘汰Java。
第五点:Java可能不是最好的语言,但Java是最成熟的整体解决方案
经常有人会问我,Java是最好的编程语言吗?我会告诉他:应该不是。我知道的很多语言,如果仅就语言功能来说确实优于Java,就比如日趋没落的 C#,由于很多特性都模仿了Java,有在某些方面做出了改进,因此语言特性要优于J再比如Apple新推出的Swift,编写起来简洁、优雅……然而并没有什么用,它们都无力、也不可能取代Java。就像世界上比C优秀的语言多如牛毛,但C依然、也将一直坚挺。
Java可能不是最好的语言,但Java一定是最成熟的整体解决方案。举几个业内公开事实:taobao最初使用了PHP,发展、壮大起来不得不全部换成Java实现;京东最初使用了dot Net实现,发展起来之后整个后台不得不换成Java实现;小米服务端的消息系统最初使用Erlang开发,当时消息推送系统的第一版是基于Erlang 的,随着小米用户数量的增长,后来开发团队不得不选择使用Java重新开发……还有无数中小型的企业“迷途知返”的案例,我就不想一一列举了。从这些事实可以发现,对于一个并发量小、稳定性要求不高的系统来说,可供选择的方案看似很多:PHP、dot Net、Erlang……,但公司发展壮大之后,最成熟的解决方案却只能是Java。
Java的成熟并非体现在Java语言特性多么简介、优雅,而是来自它庞大的社区和开发者,以及各种各样框架、类库和工具。软件行业的各种新理论,新方法,几乎最先都是用Java实现的。选择Java作为企业级应用的解决方案,可以避免地“重复造轮子”,很多开发中面临的棘手难题,往往都有开源的解决方案;几乎所有行业,都有非常成熟的Java应用案例,可供后来的开发者作为参考。选择Java,并不是简单地选择了一门语言,而是选择了一个成熟、稳定的解决方案。
Java的成熟更体现在包容气度上,有人说Java语法臃肿、更喜欢Ruby,OK,那就JRuby吧;有人说我喜欢Python,OK,那就 Groovy、Jython吧;有人说我喜欢Lisp,OK,那就Clojure吧……各种语言的开发者都可在JVM上大展拳脚,Java以海纳百川的方式包容、融汇着各种语言的特性,最终成就了Java的“夫唯不争,故天下莫能与之争”。
编 辑:孔垂帅
余承东: 华为超越苹果三星 需四到五年时间
CCTIME推荐
CCTIME飞象网
CopyRight &
京ICP备号&& 京公网安备号
公司名称: 北京飞象互动文化传媒有限公司
未经书面许可,禁止转载、摘编、复制、镜像Java SE、Java EE 与 Spring - CSDN博客
Java SE、Java EE 与 Spring
JavaSE、JavaEE 与Spring的概念
在Java世界中,很多人都对Java SE、J2EE、Java EE、Spring、EJB等这些术语感到困惑。
什么是Java SE
可以说这是Java的核心。(主要部分)
用于开发桌面应用程序和基于web的应用程序。
它提供了从基本对象到高级类的所有东西,这些类被用于网络、数据库访问、安全、XML解析、GUI开发。
除了这些核心api之外,它还提供了虚拟机(JVM)、开发工具、部署技术等
什么是Java EE
Java EE是一个抽象的规范。
具体实现称为应用服务器(如GlassFish、WildFly、WebLogic)。
当您从Oracle站点下载Java EE时,它将给您提供大量文档和示例的GlassFish服务器。因此,它们只是提供了Java Enterprise Edition规范的实现。
您还可以使用其他的实现,比如RedHat WildFly,它也遵循这些规范。
因此,J2EE是1999年到2003年Java EE的抽象规范的版本名称。
EJB遵循Java EE规范,所以EJB属于JavaEE。
什么是Spring
Spring遵循“所有”JavaEE规范吗? 严格地说不是
Spring是一个独立的框架,它替代并改进了JavaEE的许多部分。
您可以将Spring视为一个集成平台,允许您使用所有JavaEE技术。
这意味着您不一定需要完整的fledge JavaEE应用服务器来支持。
您可以在像Tomcat这样的简单servlet容器上运行它。
Spring是一个独立的集成平台(框架),在JavaEE中有改进和替换,也允许您使用JavaEE技术。
JavaEE 与Spring的区别
Rod Johnson带着他的革命书籍,《J2EE Development without EJB》,描述了新的Spring框架的特性。它就像一股新鲜空气,很快,Spring的直觉依赖注入功能成为了控制反转(IoC)设计模式的实际标准实现。
从那时起,JEE和Spring都在发展,尽管Spring似乎总是在前进。Spring引入的所有最佳功能后来都被“标准”企业Java采纳,包括:
Spring IoC在JEE中实现为容器依赖注入(CDI);
JEE作为JSR 352实现的Spring批处理:Java平台的批处理应用程序。
公平地说,在Java中很酷的新功能,比如注解,也会导致对Spring的修改。除了在第三次迭代中提供基于注解的配置之外,Spring也变得模块化,至少在一定程度上归功于Maven的巨大流行,它引入了一种解决和管理依赖第三方库的新方法。事实上,JEE和Spring继续相互影响并相互鼓励,比如当JEE 7引入了Web profile的模块化,开发了JAX的开发人员,并促进了更轻量级的企业应用程序。类似地,从Java 8的JCP 335和JCP 310的日期和时间API,在Spring中激发了新的增强。可无论是JEE还是Spring的支持者都倾向于认为它们是相互排斥的。
让我们来看看在一个更平衡的环境中进行比较
Java EE行业认可的标准API框架
它主要基于注释和CDI
用于web开发的JFC MVC框架
用于进程数据库操作的JPA实现
JTA API和实现
基于EJB容器和POJO的实现
Oracle许可证
基于IOC和AOP
基于XML配置(现在他们正在利用注释)
使用Spring DAO框架(基于模板设计patter)连接到数据库
提供抽象层以支持各种JTA实现供应商
与不同的Java厂商的不同支持不同的功能,这样容易与struts等集成
提供端到端平台构建web应用程序,实现使用DI和AOP的松散耦合
开放源码许可
Spring的实现重点与JEE的标准化和可移植性
SpringSource社区与Java社区过程的主要区别在于其不同的动机。SpringSource的创新来自于解决现实世界问题的需要。解决方案以解决问题为导向,这样下一个步骤和整个项目就可以尽可能快速和顺利地实现。
JCP有点像公司。创新和决策与解决方案如何导致标准技术规范相关联。另外,像Oracle、IBM、RedHat甚至SpringSource参与JCP。大多数Java规范请求都需要很长的路径才能实际实现。例如,jsr - 303:Bean验证需要三年才能完成。也许在这个领域,速度并没有那么重要,因为大多数大型企业项目不会经常发生变化,而且会有更长的生命周期。他们甚至可能不想要所有最新的、但未经证实的技术。
JEE的另一个论点是可移植性。简而言之,JEE是一组规范。你在你的应用程序中使用的东西可以被拉入你选择的任何JEE兼容的容器中。简单地说,用一些常规的方法来包装业务逻辑,为CRUD操作提供持久性,然后从14个JEE供应商中选择。理想情况下,您应该能够在不同服务器之间移动代码。这有时行得通。首先,现在只有三个供应商支持JEE 7,所以很多都变得无关紧要了。其次,有些实现是特定于供应商的,并且仍然需要时间和资源来让项目在不同的环境中运行。当然,这取决于项目的复杂性。一个简单的示例应用程序将从任何一个开始,但不是一个复杂的。
另一方面,Spring只支持VMWare,它被认为是其他库的包装器,将它们耦合在一起,提供更容易的访问和配置功能——如果您知道如何做到这一点的话。但是Spring应用程序可以在一个成熟的JEE服务器上运行,也可以在轻量级JSP容器中运行,比如Jetty、Tomcat或Netty,避免了巨大的开销。Spring甚至可以在独立模式下运行,因为Spring引导模块可以包装Jetty或Tomcat。
对JEE与Spring的大多数比较测试都存在缺陷。只有良好的负载和压力测试,以及持续的基准测试才能真正分析应用程序中的瓶颈。事实是,一个或另一个容器可能更适合于任何特定的情况。
当然,无论是Spring还是JEE,学习曲线都是陡峭的。让我们从地面开始。复杂性是感知、经验、知识、情绪、勇气的问题。这一切都不容易,但同样的想法仍然存在于双方——相反的技术是一个复杂的结,它会在你试图解决某一特定任务的时候偷走你的时间。(并不是真的有这样的强硬的Spring或有思想的人:)我发现Spring是逻辑结构,而类名TransactionAwareConnectionFactoryProxyUserCredentialsConnectionFactoryAdapter看起来吓人,他们描述的实现类没有挖掘教程。另一方面,JEE依赖于零散的规范。但是,通过了解应用程序的哪一部分需要理解,您可以在适当的指南中找到它。这两个框架都有大量的例子和指南。最后,Spring和JEE建立在相同的原则之上,以提供Java web应用程序开发的工具。如果您了解基本的软件模式和设计,您将能够了解其中任何一个。
本文已收录于以下专栏:
相关文章推荐
本人之前用的是MyEclipse,是商业软件,考虑到侵权行为,所以就自己琢磨了下用Eclipse IDE for Java EE Developers 搭建SpringMVC项目,总体感觉还可以 推荐...
本文来源于我在InfoQ中文站翻译的文章,原文地址是:q.com/cn/news/2015/07/spring-javaee在Java社区中,Spring与Java EE...
JAVA EE 运行环境配置(包含JAVA SE)
1.下载并安装jre-7u7-windows-i586.exe (最新的JAVA运行环境)
2.下载并安装java_ee_sdk-6u4...
Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。J...
java是由sun microsystems公司于1995年5月推出的java程序设计语言和java平台的总称。用java实现的hotjava浏览器(支持java applet)显示了java的魅力:...
作者:知乎用户
链接:/question//answer/
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非...
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java
applet)显示了Java的魅...
Java SE(Java Platform,Standard Edition),应该先说这个,因为这个是标准版本。
Java EE (Java Platform,Enterprise Edition)...
目前,Java平台有3个版本:
1.Java EE(Java Platform Enterprise Edition):
适用于创建服务器应用程序和服务的Java
平台企业版
目前作用:
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)外文翻译---JSP技术与主流JAVA EE开源框架(SSH)技术简介-海文库
全站搜索:
您现在的位置:&>&&>&计算机软件及应用
外文翻译---JSP技术与主流JAVA EE开源框架(SSH)技术简介
本科毕业设计外文翻译
JSP technology and mainstream open-sourceframework for JAVA EE
院(系、部)名称:工商管理学院专业名称:信息管理与信息系统学生姓名:学生学号:指导教师:
JSP technology and mainstream open-source framework forJAVAEE1. JSP ProfileJSP (Java Server Pages) is initiated by Sun Microsystems, Inc., with many companies to participate in the establishment of a dynamic web page technical standards. JSP technology somewhat similar to ASP technology, it is in the traditional HTML web page document (*.htm, *. html) to insert the Java programming paragraph (Scriptlet) and JSP tag (tag), thus JSP documents (*.jsp). Using JSP development of the Web application is cross-platform that can run on Linux, is also available for other operating systems.JSP technology to use the Java programming language prepared by the category of XML tags and scriptlets, to produce dynamic pages package processing logic. Page also visit by tags and scriptlets exist in the services side of the resources of logic. JSP page logic and web page design and display separation, support reusable component-based design, Web-based application development is rapid and easy.Web server in the face of visits JSP page request, the first implementation of the procedures of, and then together with the results of the implementation of JSP documents in HTML code with the return to the customer. Insert the Java programming operation of the database can be re-oriented websites, in order to achieve the establishment of dynamic pages needed to function.JSP and Java Servlet, is in the implementation of the server, usually returned to the client is an HTML text, as long as the client browser will be able to visit.JSP 1.0 specification of the final version is launched in September 1999, December has introduced 1.1 specifications. At present relatively new is JSP1.2 norms, JSP2.0 norms of the draft has also been introduced.JSP pages from HTML code and Java code embedded in one of the components. The server was in the pages of client requests after the Java code and then will generate the HTML pages to return to the client browser. Java Servlet JSP is the technical foundation and large-scale Web application development needs of Java Servlet and JSP support to complete. JSP with the Java technology easy to use, fully object-oriented, and a platform-independent and securemainly for all the characteristics of the Internet. JSP technology strength: (1) time to prepare, run everywhere. At this point Java better than PHP, in addition to systems, the code not tomake any changes.(2) the multi-platform support. Basically on all platforms of any development environment, in any environment for deployment in any environment in the expansion. Compared ASP / PHP limitations are obvious. (3) a strong scalability. From only a small Jar documents can run Servlet / JSP, to the multiple servers clustering and load balancing, to multiple Application for transaction processing, information processing, a server to numerous servers, Java shows a tremendous Vitality. (4) diver sification and powerful development tools support. This is similar to the ASP, Java already have many very good development tools, and many can be free, and many of them have been able to run on a variety of platforms under. JSP technology vulnerable:(1) and the same ASP, Java is the advantage of some of its fatal problem. It is precisely because in order to cross-platform functionality, in order to extreme stretching capacity, greatly increasing the complexity of the product. (2) Java's speed is class to complete the permanent memory, so in some cases by the use of memory compared to the number of users is indeed a &minimum cost performance.& On the other hand, it also needs disk space to store a series of. Java documents and. Class, as well as the corresponding versions of documents.2. J2EE Development FrameworkJava2 Enterprise Edition middleware unified ideology played a significant role. For example, J2EE for distributed transaction management, directory services and messaging services provide a standard programming interface. J2EE-based -Java2Standard Edition (J2SE), successfully access for Java provides a standard relational database.But, as this article &J2EE programming of the lack of support&, as mentioned, J2EEplatform does not provide a satisfactory application programming model. Sun and some of the major application server vendors wanted to use the development tools to reduce the complexity of J2EE development, but these tools are no other outstanding JAVA development tools, which have advanced refactoring tools, and. NET platform compared, J2EE tool support appeared to be very inferior.Many J2EE development tools automatically generate the code for the same complex as the tools themselves. In many small-scale J2EE open source community developers chose another way of development - some can be difficult to reduce the development of J2EE development framework, the more popular such as: Struts, Hibernate, and Spring Framework, J2EE project types in many of today they play an important the role.
2.1 Spring FrameworkThe Spring Framework is an open source application framework for the Java platform.The first version was written by Rod Johnson who released the framework with the publication of his book Expert One-on-One J2EE Design and Development in October 2002. The framework was first released under the Apache 2.0 license in June 2003. The first milestone release, 1.0, was released in March 2004, with further milestone releases in September 2004 and March 2005. The Spring 1.2.6 framework won a Jolt productivity award and a JAX Innovation Award in 2006. Spring 2.0 was released in October 2006, and Spring 2.5 in November 2007. In December 2009 version 3.0 GA was released. The current version is 3.0.5.The core features of the Spring Framework can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the Spring Framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.ModulesThe Spring Framework comprises several modules that provide a range of services:Inversion of Control container: configuration of application components and lifecycle management of Java objectsAspect-oriented programming: enables implementation of cross-cutting routines Data access: working with relational database management systems on the Java platform using JDBC and object-relational mapping toolsTransaction management: unifies several transaction management APIs and coordinates transactions for Java objectsModel-view-controller: an HTTP and Servlet-based framework providing hooks for extension and customizationRemote Access framework: configurative RPC-style export and import of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including web services (SOAP)Convention-over-configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring model.Batch processing: a framework for high-volume processing featuring reusablefunctions including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource managementAuthentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).Remote Management: configurative exposure and management of Java objects for local or remote configuration via JMXMessaging: configurative registration of message listener objects for transparent message consumption from message queues via JMS, improvement of message sending over standard JMS APIsTesting: support classes for writing unit tests and integration testsInversion of Control containerCentral to the Spring Framework is its Inversion of Control container, which provides a consistent means of configuring and managing Java objects using callbacks. The container is responsible for managing object lifecycles: creating objects, calling initialization methods, and configuring objects by wiring them together.Objects created by the container are also called Managed Objects or Beans. Typically, the container is configured by loading XML files containing Bean definitions which provide the information required to create the beans.Objects can be obtained by means of Dependency lookup or Dependency injection. Dependency lookup is a pattern where a caller asks the container object for an object with a specific name or of a specific type. Dependency injection is a pattern where the container passes objects by name to other objects, via either constructors, properties, or factory methods.In many cases it's not necessary to use the container when using other parts of the Spring Framework, although using it will likely make an application easier to configure and customize. The Spring container provides a consistent mechanism to configure applications and integrates with almost all Java environments, from small-scale applications to large enterprise applications.The container can be turned into a partially-compliant EJB3 container by means of the Pitchfork project. The Spring Framework is criticized by some as not being standards compliant. However, SpringSource doesn't see EJB3 compliance as a major goal, and claims that the Spring Framework and the container allow for more powerful programming models.
Aspect-oriented programming frameworkThe Spring Framework has its own AOP framework which modularizes cross-cutting concerns in aspects. The motivation for creating a separate AOP framework comes from the belief that it would be possible to provide basic AOP features without too much complexity in either design, implementation, or configuration. The SAOP framework also takes full advantage of the Spring Container.The Spring AOP framework is interception based, and is configured at runtime. This removes the need for a compilation step or load-time weaving. On the other hand, interception only allows for public or protected method execution on existing objects at a join point.Compared to the AspectJ framework, Spring AOP is less powerful but also less complicated. Spring 1.2 includes support to configure AspectJ aspects in the container. Spring 2.0 added more integration with AspectJ; for example, the pointcut language is reused and can be mixed with SpAOP-based aspects. Further, Spring 2.0 added a Spring Aspects library which uses AspectJ to offer common Spring features such as declarative transaction management and dependency injection via AspectJ compile-time or load-time weaving. SpringSource also uses AspectJ for AOP in other Spring projects such as Spring Roo and Spring Insight, with Spring Security also offering an AspectJ-based aspect library.Spring AOP has been designed to make it able to work with cross-cutting concerns inside the Spring Framework. Any object which is created and configured by the container can be enriched using Spring AOP.The Spring Framework uses Spring AOP internally for transaction management, security, remote access, and JMX.Since version 2.0 of the framework, Spring provides two approaches to the AOP configuration:schema-based approach.@AspectJ-based annotation style.The Spring team decided not to introduce new AOP- therefore, in the Spring reference documentation and API, terms such as aspect, join point, advice, pointcut, introduction, target object (advised object), AOP proxy, and weaving all have the same meanings as in most other AOP frameworks (particularly AspectJ).Data access frameworkSpring's data access framework addresses common difficulties developers face when working with databases in applications. Support is provided for all popular data access frameworks in Java: JDBC, iBatis, Hibernate,JDO, JPA, Oracle TopLink, Apache OJB, and Apache Cayenne, among others.For all of these supported frameworks, Spring provides these features:Resource management - automatically acquiring and releasing database resourcesException handling - translating data access related exception to a Spring data access hierarchyTransaction participation - transparent participation in ongoing transactionsResource unwrapping - retrieving database objects from connection pool wrappersAbstraction for BLOB and CLOB handlingAll these features become available when using Template classes provided by Spring for each supported framework. Critics say these Template classes are intrusive and offer no advantage over using (for example) the Hibernate API.. directly. In response, the Spring developers have made it possible to use the Hibernate and JPA APIs directly. This however requires transparent transaction management, as application code no longer assumes the responsibility to obtain and close database resources, and does not support exception translation.Together with Spring's transaction management, its data access framework offers a flexible abstraction for working with data access frameworks. The Spring Framework doesn't offer a common data access API; instead, the full power of the supported APIs is kept intact. The Spring Framework is the only framework available in Java which offers managed data access environments outside of an application server or container. While using Spring for transaction management with Hibernate, the following beans may have to be configured.Transaction management frameworkSpring's transaction management framework brings an abstraction mechanism to the Java platform. Its abstraction is capable ofworking with local and global transactions (local transaction does not require an application server).working with nested transactionsworking with transaction safepointsworking in almost all environments of the Java platformIn comparison, JTA only supports nested transactions and global transactions, and requires an application server (and in some cases also deployment of applications in an application server).The Spring Framework ships a PlatformTransactionManager for a number of transaction management strategies:
Transactions managed on a JDBC ConnectionTransactions managed on Object-relational mapping Units of WorkTransactions managed via the JTA TransactionManager and UserTransaction Transactions managed on other resources, like object databasesNext to this abstraction mechanism the framework also provides two ways of adding transaction management to applications:Programmatically, by using Spring's TransactionTemplateConfiguratively, by using metadata like XML or Java 5 annotationsTogether with Spring's data access framework ― which integrates the transaction management framework ― it is possible to set up a transactional system through configuration without having to rely on JTA or EJB. The transactional framework also integrates with messaging and caching engines.The BoneCP Spring/Hibernate page contains a full example project of Spring used in conjunction with Hibernate.Model-view-controller frameworkThe Spring Framework features its own MVC framework, which wasn't originally planned. The Spring developers decided to write their own web framework as a reaction to what they perceived as the poor design of the popular Jakarta Struts web framework, as well as deficiencies in other available frameworks. In particular, they felt there was insufficient separation between the presentation and request handling layers, and between the request handling layer and the model.Like Struts, Spring MVC is a request-based framework. The framework defines strategy interfaces for all of the responsibilities which must be handled by a modern request-based framework. The goal of each interface is to be simple and clear so that it's easy for Spring MVC users to write their own implementations if they so choose. MVC paves the way for cleaner front end code. All interfaces are tightly coupled to the Servlet API. This tight coupling to the Servlet API is seen by some as a failure on the part of the Spring developers to offer a high-level abstraction for web-based applications[citation needed]. However, this coupling makes sure that the features of the Servlet API remain available to developers while offering a high abstraction framework to ease working with said API.The DispatcherServlet class is the front controller of the framework and is responsible for delegating control to the various interfaces during the execution phases of a HTTP request.
The most important interfaces defined by Spring MVC, and their responsibilities, are listed below:HandlerMapping: selecting objects which handle incoming requests (handlers) based on any attribute or condition internal or external to those requestsHandlerAdapter: execution of objects which handle incoming requestsController: comes between Model and View to manage incoming requests and redirect to proper response. It essentially is like a gate that directs the incoming information. It switches between going into model or view.View: responsible for returning a response to the client. It is possible to go straight to view without going to the model part. It is also possible to go through all three.ViewResolver: selecting a View based on a logical name for the view (use is not strictly required)HandlerInterceptor: interception of incoming requests comparable but not equal to Servlet filters (use is optional and not controlled by DispatcherServlet).LocaleResolver: resolving and optionally saving of the locale of an individual userMultipartResolver: facilitate working with file uploads by wrapping incoming requestsEach strategy interface above has an important responsibility in the overall framework. The abstractions offered by these interfaces are powerful, so to allow for a set of variations in their implementations, Spring MVC ships with implementations of all these interfaces and together offers a feature set on top of the Servlet API. However, developers and vendors are free to write other implementations. Spring MVC uses the Java java.util.Map interface as a data-oriented abstraction for the Model where keys are expected to be string values.The ease of testing the implementations of these interfaces seems one important advantage of the high level of abstraction offered by Spring MVC. DispatcherServlet is tightly coupled to the Spring Inversion of Control container for configuring the web layers of applications. However, applications can use other parts of the Spring Framework―including the container―and choose not to use Spring MVC.Because Spring MVC uses the Spring container for configuration and assembly, web-based applications can take full advantage of the Inversion of Control features offered by the container. This framework allows for multilayering. It allows for thecode to be broken apart and used more effectively in segments, while allowing the mvc to do the work. It allows for back and forth transmission of data. Some designs are more linear without allowing a forward and backward flow of information. MVC is designed very nicely to allow this interaction. It is used more than just in web design, but also in computer programming. It's very effective for web design. Basically allows a checks and balance system to occur where before being viewed it can be properly examined.Remote access frameworkSpring's Remote Access framework is an abstraction for working with various RPC-based technologies available on the Java platform both for client connectivity and exporting objects on servers. The most important feature offered by this framework is to ease configuration and usage of these technologies as much as possible by combining Inversion of Control and AOP.The framework also provides fault-recovery (automatic reconnection after connection failure) and some optimizations for client-side use of EJB remote stateless session beans.Convention-Over-Configuration Rapid Application DevelopmentSpring Roo is Spring's Convention-over-configuration solution for rapidly building applications in Java. It currently supports Spring Framework, Spring Security and Spring Web Flow, with remaining Spring projects scheduled to be added in due course. Roo differs from other rapid application development frameworks by focusing on:The following diagram represents the Spring Framework Architecture2.2 StrutsIntroductionApache StrutsFrom Wikipedia, the free encyclopediaJump to: navigation, search
&Struts& redirects here. For the structural component, see strut. For other meanings, see strut (disambiguation).This article includes a list of references, but its sources remain unclear because it has insufficient inline citations.Please help to improve this article by introducing more precise citations where appropriate.Apache Struts is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model-view-controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May, 2000.Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top level Apache project in 2005.Design goals and overview in a standard Java EE web application, the client will typically submit information to the server via a web form. The information is then either handed over to a Java Servlet that processes it, interacts with a database and produces an HTML-formatted response, or it is given to a JavaServer Pages (JSP) document that intermingles HTML and Java code to achieve the same result. Both approaches are often considered inadequate for large projects because they mix application logic with presentation and make maintenance difficult.The goal of Struts is to separate the model (application logic that interacts with a database) from the view (HTML pages presented to the client) and the controller (instance that passes information between view and model). Struts provides the controller (a servlet known as ActionServlet) and facilitates the writing of templates for the view or presentation layer (typically in JSP, but XML/XSLT and Velocity are also supported). The web application programmer is responsible for writing the model code, and for creating a central configuration file struts-config.xml that binds together model, view and controller.Requests from the client are sent to the controller in the form of &Actions& defined in th if the controller receives such a request it calls the corresponding Action class that interacts with the application-specific model code. The model code returns an &ActionForward&, a string telling the controller what output page to send to the client. Information is passed between model and view in the form of special JavaBeans. A powerful custom tag library allows it to read and write the content of these beans from the presentation layer without the need for any embedded Java code.Struts is categorized as a request-based web application frameworkStruts also supports internationalization by web forms, and includes a template mechanism called &Tiles& that (for instance) allows the presentation layer to be composed from independent header, footer, and content componentsHistoryThe Apache Struts Project was launched in May 2000 by Craig R. McClanahan to provide a standard MVC framework to the Java community. In July 2001, version 1.0 was released.Struts2 was originally known as WebWork 2. After having been developed separately for several years, WebWork and Struts were combined in 2008 to create Struts 2.
Competing MVC frameworksAlthough Struts is a well-documented, mature, and popular framework for building front ends to Java applications, there are other frameworks categorized as &lightweight& MVC frameworks such as Spring MVC, Stripes, Wicket, Play!, and Tapestry. The new XForms standards and frameworks may also be another option to building complex web Form validations with Struts in the future.The WebWork framework spun off from Apache Struts aiming to offer enhancements and refinements while retaining the same general architecture of the original Struts framework. However, it was announced in December 2005 that Struts would re-merge with WebWork. WebWork 2.2 has been adopted as Apache Struts2, which reached its first full release in February 2007.In 2004 Sun launched an addition to the Java platform, called JavaServer Faces (JSF). Aside from the original Struts framework, the Apache project previously offered a JSF-based framework called Shale, which was retired in May 2009.In this section we will discuss about Architecture. Struts is famous for its robust Architecture and it is being used for developing small and big software projects.Struts is an open source framework used for developing J2EE web applications using Model View Controller (MVC) design pattern. It uses and extends the Java Servlet API to encourage developers to adopt an MVC architecture. Struts framework provides three key components:A request handler provided by the application developer that is used to mapped to a particular URI. A response handler which is used to transfer the control to another resource which will be responsible for completing the response.A tag library which helps developers to create the interactive form based applications with server pagesLearn Struts 2.2.1 frameworkStruts provides you the basic infrastructure infrastructure for implementing MVC allowing the developers to concentrate on the business logicThe main aim of the MVC architecture is to separate the business logic and application data from the presentation data to the user.Here are the reasons why we should use the MVC design patternThey are resuable: When the problems recurs, there is no need to invent a new solution, we just have to follow the pattern and adapt it as necessary. They are expressive: By using the MVC design pattern our application becomes more expressive.1). Model: The model object knows about all the data that need to be displayed. It is model who is aware about all the operations that can be applied to transform thatobject. It only represents the data of an application. The model represents enterprise data and the business rules that govern access to and updates of this data. Model is not aware about the presentation data and how that data will be displayed to the browser.2). View: The view represents the presentation of the application. The view object refers to the model. It uses the query methods of the model to obtain the contents and renders it. The view is not dependent on the application logic. It remains same if there is any modification in the business logic. In other words, we can say that it is the responsibility of the view's to maintain the consistency in its presentation when the model changes.3). Controller:
Whenever the user sends a request for something then it always go through the controller. The controller is responsible for intercepting the requests from view and passes it to the model for the appropriate action. After the action has been taken on the data, the controller is responsible for directing the appropriate view to the user. In GUIs, the views and the controllers often work very closely together.The Struts framework is composed of approximately 300 classes and interfaces which are organized in about 12 top level packages. Along with the utility and helper classes framework also provides the classes and interfaces for working with controller and presentation by the help of the custom tag libraries. It is entirely on to us which model we want to choose. The view of the Struts architecture is given below:The Struts Controller ComponentsWhenever a user request for something, then the request is handled by the Struts Action Servlet. When the ActionServlet receives the request, it intercepts the URL and based on the Struts Configuration files, it gives the handling of the request to the Action class. Action class is a part of the controller and is responsible for communicating with the model layer.The Struts View Components: The view components are responsible for presenting information to the users and accepting the input from them. They are responsible for displaying the information provided by the model components. Mostly we use the Java Server Pages (JSP) for the view presentation. To extend the capability of the view we can use the Custom tags, java script etc.The Struts model componentThe model components provides a model of the business logic behind a Struts program. It provides interfaces to databases or back- ends systems. Model components are generally a java class. There is not any such defined format for a Model component, so it is possible for us to reuse Java codewhich are written for other projects. We should choose the model according toour client requirement.2.3 Hibernate FrameWorkHibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. Hibernate solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.Hibernate is free software that is distributed under the GNU Lesser General Public License Hibernate's primary feature is mapping from Java classes to database tables (and from Java data types to SQL data types). Hibernate also provides data query and retrieval facilities. Hibernate generates the SQL calls and attempts to relieve the developer from manual result set handling and object conversion and keep the application portable to all supported SQL databases with little performance overhead.Mapping Java classes to database tables is accomplished through the configuration of an XML file or by using Java Annotations. When using an XML file, Hibernate can generate skeletal source code for the persistence classes. This is unnecessary when annotation is used. Hibernate can use the XML file or the annotation to maintain the database schema.Facilities to arrange one-to-many and many-to-many relationships between classes are provided. In addition to managing association between objects, Hibernate can also manage reflexive associations where an object has a one-to-many relationship with other instances of its own type.Hibernate supports the mapping of custom value types. This makes the following scenarios possible:Overriding the default SQL type that Hibernate chooses when mapping a column to a property.Mapping Java Enum to columns as if they were regular properties.Mapping a single property to multiple columns.Persistence Hibernate provides transparent persistence for Plain Old Java Objects (POJOs). The only strict requirement for a persistent class is a no-argument constructor, not necessarily public. Proper behavior in some applications also requires special attention to the equals() and hashCode() methods.
Collections of data objects are typically stored in Java collection objects such as Set and List. Java generics, introduced in Java 5, are supported. Hibernate can be configured to lazy load associated collections. Lazy loading is the default as of Hibernate 3.Related objects can be configured to cascade operations from one to the other. For example, a parent such as an Album object can be configured to cascade its save and/or delete operation to its child Track objects. This can reduce development time and ensure referential integrity. A dirty checking feature avoids unnecessary database write actions by performing SQL updates only on the modified fields of persistent objects Hibernate Query Language (HQL)Hibernate provides an SQL inspired language called Hibernate Query Language (HQL) which allows SQL-like queries to be written against Hibernate's data objects. Criteria Queries are provided as an object-oriented alternative to HQL. Integration Hibernate can be used both in standalone Java applications and in Java EE applications using servlets or EJB session beans. It can also be included as a feature in other programming languages. For example, Adobe integrated Hibernate into version 9 of ColdFusion (which runs on J2EE app servers) with an abstraction layer of new functions and syntax added into CFML Entities and componentsIn Hibernate jargon, an entity is a stand-alone object in Hibernate's persistent mechanism which can be manipulated independently of other objects. In contrast, a component is subordinate to other entities and can be manipulated only with respect to other entities. For example, an Album object may represent an entity but the Tracks object associated with the Album objects would represent a component of the Album entity if it is assumed that Tracks can only be saved or retrieved from the database through the Album object. Unlike J2EE, it can switch databases History Hibernate was started in 2001 by Gavin King as an alternative to using EJB2-style entity beans. Its mission back then was to simply offer better persistence capabilities than offered by EJB2 by simplifying the complexities and allowing for missing features Early in 2003, the Hibernate development team began Hibernate2 releases which offered many significant improvements over the first release JBoss, Inc. (now part of Red Hat) later hired the lead Hibernate developers and worked with them in supporting Hibernate.As of 2010 update the current version of Hibernate is Version 3.x. This version introduced new features like a new Interceptor/Callback architecture, user defined filters, and JDK 5.0 Annotations (Java's metadata feature). As of 2010[update] Hibernate 3 (version 3.5.0 and up) is a certified implementation of the JavaPersistence API 2.0 specification via a wrapper for the Core module which provides conformity with the JSR 317 standard Application programming interface A session is intended to last as long as the logical transaction on the database. Due to the latter feature Session implementations are not expected to be thread safe nor to be used by multiple clients.
JSP技术与主流JAVA EE开源框架(SSH)技术简介 1 JSP技术简介JSP(Java Server Pages)是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。用JSP开发的Web应用是跨平台的,即能在Linux运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和Scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和Scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。日前较新的是JSP 1.2规范,JSP2.0规范的征求意见稿也已出台。JSP页而由HTML代码和嵌入其中的java代码所组成。服务器在页而被客户端请求以后对这些java代码进行处理,然后将生成的HTML页而返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的而向对象,其有平台无关性且安全可靠,主要而向因特网的所有特点。2 J2EE开发框架Java2企业版为中间件领域思想的统一上发挥了很大的作用。比如,J2EE为分布式事务管理、目录服务和消息服务提供了一套标准的编程接口。J2EE的基础――Java2标准版(J2SE) ,成功地为Java提供了一套访问关系数据库的标准。但是,就像很多J2EE开发工具自动产生的代码像这些工具本身同样复杂。在开源社区很多小型J2EE开发者选择了另外一种开发方式―― 一些可以降低J2EE开发难度的开发框架,较为流行的比如:Struts, Hibernate, 和 Spring Framework,他们当今很多J2EE项目种扮演着重要角色。2.1
Spring框架Spring Framework是一个开源的Java/java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。该框架基于Expert One-on-One
Development(ISBN 0-)一书中的代码,最初由Rod Johnson等开发。Spring Framework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。Spring中包含的关键特性:强大的基于JavaBeans的采用控制翻转原则的配置管理,使得应用程序的组建更加快捷简易。一个可用于从applet到JavaEE等不同运行环境的核心Bean工厂。数据库事务的一般化抽象层,允许声明式事务管理器,简化事务的划分使之与底层无关。内建的针对JTA和单个JDBC数据源的一般化策略,使Spring的事务支持不要求JavaEE环境,这与一般的JTA或者EJB CMT相反。JDBC抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用JDBC时,你无需再写出另一个终止(finally)模块。并且面向JDBC的异常与Spring通用数据访问对象(Data Access Object)异常等级相一致。以资源容器,DAO实现和事务策略等形式与Hibernate,JDO 和 iBATIS SQL Maps集成。利用众多的翻转控制方便特性来全而支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。灵活的基于核心Spring功能的MVC网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(VIEW)技术,例如Jsp
FreeMarker,Velocity,Tiles,iText以及POI。值得注意的是,Spring中间层可以轻易地结合于任何基于MVC框架的网页层,例如Struts,WebWork,或Tapestry,提供诸如事务管理等服务的而向方而编程框架。在设计应用程序简洁明了的框架结构Model时,MVC模式(例如struts)通常难于给出一个简洁明了的框架结构。Spring却具有能够让这部分上作变得简单的能力。程序开发员们可以使用Spring的JDBC抽象层重新设计那些复杂的框架结构。2.2 Struts技术介绍Struts项目是Apache软件基金会(ASF)赞助的一个开源项日。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架(web Framework),是MVC经典设计模式中的一个经典产品。MVC结构在Struts中,已经由一个名为ActionServlet的Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(view)的请求,组装响应数据模型(Model)。在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应struts里的ActionForm与Action两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Bean(EJB),JDBC与JNDL。在struts的视图(view)端,除了使用标准的Java Server Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如XSLT等。通过应用struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与映射关系的配置文件(struts-config.xml)中。发展历程在JavaEE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JSP的源代码中,采用HTML与java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,CraigMcClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行Java的WEB应用框架。2006年,Webwork与Struts这两个优秀的Java EEweb框架(Web FrameWork)的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts2 &,原Struts的1.x版本产品称为“Struts1”至此,Struts项目并行提供与维护两个主要版本的框架产品一一Struts1与Struts2。很多开发人员认为Shuts目前尚不成熟,应用的成本较高。附带的一点点建议:Struts的优点主要集中体现在两个方而:Taglib和页而异航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。Struts这个名字来源于建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发java应用的时间。你仍然需要学习和应用该架构,不过将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。2.3 Hibernate开源框架介绍Hibernate是一种Java语言下的对象关系映射解决方案。它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。概览它的设计目标是将软件开发人员从大量相同的数据持久层相关编程上作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate不仅负责从java类到数据库表的映射(还包括从java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。.NET上的hibernatehibernate有个在.NET上的实现版本,称为NHibernate,在ADO.NET Entity Framework发表之前,NHibernate是在.NET Framework上经常被使用的ORM实现。hibernate的架构有三个主要部分组成:(1). 连接管理:hibernate的连接管理服务提供的数据库连接的有效管理。数据库连接是与数据库进行交互,因为需要大量资源的开放和关闭数据库连接的最昂贵的部分。(2). 交易管理:事务管理服务提供给用户能够同时执行多个数据库报表。(3). 对象关系映射:对象关系映射从对象映射模型的数据表示为关系数据模型的技术。这部分是用来休眠选择,插入,更新和删除记录窗体的基础表。当我们传递一个对象到Session.save()的方法时,Hibernate读取该对象的变量的状态,并执行必要的查询。hibernate是很好的工具尽可能对象关系映射的关注,但在连接管理和事务管理方而,它在性能和能力缺乏。所以通常冬眠与其他正在使用的连接管理和事务管理上具。Hibernate提供了使用中的灵活性。它被称为“轻型”的体系结构时,我们只使用对象关系映射的组成部分。而在“全而解决”的体系结构的所有三个组件对象关系映射,连接管理和事务管理)的使用。原文出处
《Dynamic Web Development Technologies based on JSP》 《IEEE国际计算机和信息技术会议纪要(CIT 2010)》
上一篇: 下一篇:
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 框架梁截面尺寸规范 的文章

 

随机推荐