现在企业流行的java框架技术
我将简短分析被用于支持这些框架的企业开发环境或工具箱,例如Borland JBuilder,Eclipse以及BEA Workbench。请记住,市场上有许多有关这些开发框架的图书;然而,在任何一篇文章中,要对它们进行深入描述是不可能的。不过,我将尽力讨论最广泛地使用的概念。
1. 共同点
几乎所有现代的网络开发框架都遵循了模型-视图-控制(MVC)设计模式--商业逻辑和描述被分开,由一个逻辑流控制器来协调来自客户端的请求和服务器上将采取的行动。这条途径成为了网络开发的事实上的标准。每个框架的内在的机制当然是不同的,但是开发者们使用来设计和实现他们的Web应用软件的API是很类似的。差别还存在于每个框架提供的扩展方面,例如标签库,JavaServer Faces或JavaBean包装器等。
所有的框架使用不同的技术来协调在Web应用程序之内的导航,例如XML配制文件,java属性文件或定制属性。所有的框架在控制器模块实现的方法方面也存在明显的不同。例如,EJB可能实例化在每个请求中需要的类或使用Java反射动态地调用一个适当的行动(Action)类。另外,不同框架在各自引入的概念上也有所不同。例如,一个框架可能定义用户请求和反应(以及错误)场所,而另外一个框架可能仅仅定义一个完整的流--从一个请求到多个响答和随后的再请求……
各种Java框架在它们组织数据流的方法方面是很类似的。在请求发出后,在应用程序服务器上产生一些行动;而作为响应,一些可能包含对象集的数据总是被发送到JSP层。然后,从那些对象--可能是有setter和getter方法的简单类,javabeans,值对象,或者一些集合对象--中提取数据。现代的Java框架还想方设法简化开发者的开发任务,如通过使用简易的API,数据库连接池,甚至数据库调用包等提供自动化的追踪方式来实现。一些框架或者能够钩进(hooked into)另外的J2EE技术中,例如JMS(Java消息服务)或JMX,或把这些技术集成到一起。服务器数据持续性和日志也有可能成为框架的一部分。
2. 企业开发环境
一些框架在Web开发者社区和企业发展领域变得相当流行。随着这些框架的日渐成熟并开始发行稳定的版本,商业的IDE(集成发展环境)开始为这些框架提供支持并把他们纳入到自己的产品中。一些IDE甚至基于框架的概念开发出整个的产品,例如,BEA WebLogic Workshop就是基于Struts框架建立起来的。
Borland Jbuilder为Struts提供了内建的支持,也支持JSF和JSTL。
Eclipse平台已成为一个很流行的开发工具,部分因为它是基于插件的,部分因为它对于Web框架的支持。现在,出现了众多的Eclipse插件,甚至完整的基于Eclipse的IDE。许多插件被设计适合于Struts框架开发,例如MyEclipse(www.myeclipse.org)或M7。
大多数IDE都具有图形化的流程和可视化对象(类代理)。例如,下面是一个JBuilder的行动(Action)设计器,用于规划Web应用程序的页面顺序。
WebLogic Workshop引入Java页面流程技术,它扩展了Struts框架而提供了一个简化的开发模型并增加了另外一些特性。Workshop使用页面流(Page Flows),实现轻易地把用户接口与导航和商业逻辑分离开来。页面流由JSP页组成,这些页面包含用户接口元素和一个控制器文件(JPF)--它包含由用户提供的数据将怎样被处理的指令以及下一步什么页面将被返回到用户的信息。页面流动提供给开发者一个可视化的Web应用程序总体轮廓,它让开发者能够看到直观地分析不同的JSP页彼此相关联,并实现Web应用程序整体结构的快速建立。
MyEclipse提供类似的特征,并带有更多吸引人的代价标签。
3. Apache Struts框架
Struts框架是一开源产品,基于模型-视图-控制器(MVC)设计范例来开发Web应用软件。它使用并且扩展了Java Servlet API,最初由Craig McClanahan创建。在2000年5月,它被捐赠到Apache Foundation。Struts框架展示了一个强有力的定制标签库,平铺显示,表单检验和I18N(国际化)。另外,Struts支持许多描述层,包括JSP,XML/XSLT,JavaServerFaces(JSF)和Velocity;还支持一些模型层,包括JavaBeans和EJB。
4. Spring框架
Spring框架是一个分层的Java/J2EE应用程序框架,基于Expert One-on-One J2EE设计和发行的代码。Spring框架提供一种简单的开发技术,用于自动化处理工程中大量的属性文件和助理类。
Spring框架包括的主要特色有:
1 强有力的基于JavaBeans的配置管理,使用Inversion-of-Control(IoC)原则。
2 一个核心bean工厂,可用在任何环境,从applets到J2EE容器程序。
3 通用的抽象层适合于数据库事务管理,允许可插入的事务管理器,并且不需要处理低层次的问题就可容易地划分各事务的界限。
4 一个很有意义的异常处理的JDBC抽象层。
5 与Hibernate集成到一起,DAO实现支持以及事务策略。
5. Hibernate框架
Hibernate是一适合于Java语言的对象-关系映射(ORM)解决方案。它也是开源软件,类似Struts,并且在LGPL保护下发布。Hibernate被一群来自世界各地的Java软件开发者所共同开发。它提供一个易用的框架来实现把一个面向对象的域模型映射到一传统的关系数据库。它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射,而且还提供数据查询和检索能力,并能大大减少花在SQL和JDBC手工数据处理上的开发时间。
Hibernate的目标是减轻开发者的与大量普通的数据持续性相联系的编程任务。Hibernate还能够适应开发进程,无论它是刚开始设计还是来自一现成的数据库。Hibernate可以自动生成SQL,使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务,并能使应用程序移植到所有的SQL数据库。它还能提供透明的持续性,对持续性类的唯一的要求的是实现一个无参数的构造器。
这个框架典型地使用在JavaSwing应用软件、基于Servlet的Java应用软件和使用EJBsession beans的J2EE应用软件中。
6. 结论
本文概述了现代最流行的Java Web开发框架。当然,还有更多框架尚未描述,开源和商业化的都有,例如WebWork(http://www.opensymphony.com/webwork/)或Tapestry(http://jakarta.apache.org/tapestry/);而许多框架通过扩展另外的MVC框架在内部被成功开发。当前,最流行的框架是Apache Struts。当Web开发竞技场继续演变它的工具和编程方法时,Java应用程序框架也将继续成长下去。Java Web开发框架的未来一片明亮!
现在企业流行的java框架技术的更多相关文章
- 2016年7款最流行的Java框架
虽然Java一直被唱衰,但是直到现在Java也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,所以我们为大家搜集了一些目前比较受欢迎的Java框架的消息. 根据RebelLabs对在 ...
- 分享几款流行的Java框架
虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,下面分享几个个人认为还不错的Java框架,以及各自的优缺点,希望能对大家有帮助. ...
- 2020 年最流行的 Java 开发技术
不知不觉间,2020 年即将于十几天之后到来,作为技术圈中你,准备好迎接最新的变化了吗?在本文中,我们将以编程界最常用的编程语言 Java 为例,分享最为主流的技术与工具. 作者 | divyesh. ...
- 个人java框架 技术分析
1.框架选型 spring-boot https://github.com/JeffLi1993/springboot-learning-example https://mp.weixin.qq.co ...
- 7 个最佳的 Java 框架
毫无疑问,Java是目前最需要的编程语言之一.在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作. 根据RebelLabs,也是在线Java用户组(虚拟JUG)的媒体盟 ...
- 为什么选择 Spring 作为 Java 框架
1. 概述 在本文中,我们将讨论 Spring 作为最流行的 Java 框架之一的主要价值体现. 最重要的是,我们将尝试理解 Spring 成为我们选择框架的原因.Spring 的详细信息及其组成部分 ...
- JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。
JDBC数据源(DataSource)的简单实现 数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...
- Java 横向技术 Spring框架【笔记】
Java横向技术 spring框架[笔记] Spring 的两大特性是什么? AOP(Aspect Oriented Programming,面向切面编程)与 IOC(Inverse of Contr ...
- 流行的9个Java框架介绍: 优点、缺点等等
流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...
随机推荐
- python_time和datetime模块
time和datatime模块 时间相关的操作,时间有三种表示方式: 时间戳 1970年1月1日之后的秒,即:time.time() 格式化的字符串 2019-1-1 ...
- 【HIHOCODER 1048】 状态压缩·二
描述 历经千辛万苦,小Hi和小Ho终于到达了举办美食节的城市!虽然人山人海,但小Hi和小Ho仍然抑制不住兴奋之情,他们放下行李便投入到了美食节的活动当中.美食节的各个摊位上各自有着非常多的有意思的小游 ...
- angularjs ng-repeat下验证问题
angularjs验证要求name唯一,repeat情况,name 等通过${index}等绑定,也无法获取值 通过ng-from的方法,这样验证name重复也可以了. <ng-form nam ...
- Go切片基础
package main import "fmt" //切片(Slice)本身没有数据,是对底层Array的一个view //不使用指针就可以改数组内容 //slice可以向后扩展 ...
- UVA10673 上下界问题
#include <iostream> #include<cstdio> using namespace std; #define LL long long LL a,b,m, ...
- MyEclipse 6.5安装maven插件
一.卸载原有maven插件 MyEclipse 6.5集成了Maven插件,不过有不少bug,用习惯了m2eclipse,不想在这上面浪费时间.要安装m2eclipse,需要先把自带的maven插件卸 ...
- codeforces Rockethon 2015 C Second price auction [想法]
传送门 C. Second price auction time limit per test 2 seconds memory limit per test 256 megabytes input ...
- poj - 3686 The Windy's (KM算法)
题意:n个订单和m个生产车间,每个订单在不同的车间生产所需要的时间不一样,并且每个订单只能在同一个车间中完成,直到这个车间完成这个订单就可以生产下一个订单.现在需要求完成n个订单的平均时间最少是多少. ...
- Cooking Schedule Problem Code: SCHEDULE(优先队列)
Cooking Schedule Problem Code: SCHEDULE Chef is a well-known chef, and everyone wishes to taste his ...
- 毕业bg--hdu1881(01背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1881 01 背包 先按发起人离开的时间从小到大排序 然后再套01背包的模板 #include <iost ...