关于Java现状的分析

2012-12-09 18:51:08史军仓
有色金属加工 2012年4期
关键词:调用应用程序页面

史军仓

(洛阳有色金属加工设计研究院,河南 洛阳 471039)

1 Java框架结构

Struts、Hibernate和Spring是我们Java开发中常用的框架结构,他们分别针对不同的应用场景给出最合适的解决方案。我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序结构分为几层:有负责前台展示的JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页面中需要使用符号嵌入很多的Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等。

为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行包围的Java代码了。

可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。

使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。

这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是使用Hibernate比JDBC方式减少了80%的编程量。

现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。 为此,出现Spring框架。

Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注入和控制反转。

现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注入的MVC框架,叫做Spring MVC,同时为了很好的处理事务,Spring集成了Hibernate,使事务管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。

Struts框架是2000年就开始起步了,到目前已经发展了10年左右,技术相当成熟,目前全球Java开发中Struts框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团队。这也是国内大部分Java软件公司对新进员工的基本要求。

Java这个名词似乎注定和开源紧密联系在一起了,在Java界,每天都有大量的开源技术出现,由于是开放源代码的,技术中存在的问题和不足很快就会被人发现,开源软件提供者会很快的修正或扩展这些技术,因此版本更新很快,几个星期或者几天就有一个新版本出来。

2 Java在企业的应用

随着Internet的快速发展,企业对应用程序模式的使用发生了变化,正在摒弃C/S结构而采用B/S结构,即瘦客户端/胖服务器、大容量数据库的3层或N层体系结构模式。由于Java的特点,使得它在开发服务器端的应用程序方面有着得天独厚的优势,面向服务器端的J2EE为当今逐渐流行的N层体系结构提供了一个标准的Java开发平台:界面一致、工具简易、丰富、Web页面互联便捷,从而能大大加速和简化各种应用系统的开发。目前,由于Sun、IBM、Oracle、BEA等国际厂商相继推出各种基于Java技术的应用服务器以及各种应用软件,带动了Java在金融、电信、制造等领域日益广泛的应用。如清华大学计算机系利用Java、XML和Web技术研制开发了多个软件平台,东方科技的Tong Web、金碟的Apusic、中创的Inforweb 等J2EE应用服务器及和佳ERP和宝信ERP等ERP产品,已在许多企业得到应用。

基于Java平台的应用服务器、企业服务总线(ESB)、消息中间件、流程引擎这些企业应用的关键运行平台还会在相当长的时间内被广泛使用。但是随着硬件技术的飞速发展,以及新的应用模式和商业模式例如SOA、云计算的出现和成熟,面向企业应用的开发语言越来越需要关注并行计算、多核编程、极限事务处理等。例如金融行业,Java慢慢也在逐步走入金融核心领域,很多集成商和行业最终用户都在基于Java和SOA做银行的新一代核心。而且轻量级的IOC容器、OSGi的应用服务器已经逐步成为主流,尤其是在云计算的大环境下,EJB在慢慢老去,企业应用的互联网化、“云化”是大势所趋。

3 加速后PC时代的进程

计算机的发展创造了Internet,但是计算机现在却不是访问Internet的唯一方式。正在出现的信息化、智能化的消费类电子产品打破了PC作为信息终端的垄断地位,成为人类进入Internet的新门户。信息终端的多元化预示着所谓后PC(post-PC)时代的到来。消费类的信息终端量大面广,是典型的瘦客户机,其本身的资源和能力不能与PC相比,但必须更加智能化,并对服务器端的管理提出了更高的要求。而Java平台恰恰满足了这种要求。最近推出的Kjava虚拟机能运行在16以上的微处理器上,占用内存少,人们可以随心所欲,在资源有限的设备上方便地开发出各种各样的应用,直接运行在不同的消费类或其它电子设备上;而Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。计算的网络化、嵌入化、部件化这三大趋势是紧密联系的。java和作为java扩展的jini技术将为这三者的结合找到合适的纽带。java绝不仅仅是一种语言,最近的发展越来越表明:java和作为java扩展的jini是一个分布式的,部件化的,可广泛运用于从服务器、pc机到机顶盒、微波炉、智能卡等各种设备的、与操作系统无关的优秀网络计算平台。对于它在急剧变革的IT产业中日益增强的作用,我们必须有充分的认识。大力推进Jini的发展是Sun公司加速后PC时代进程的一项重要策略。

4 应用系统异彩纷呈

Java系统主要的展示有:应用工具、应用系统、信息家电等。特别在实时系统开发方面,以IBM为首开发出了应用于工业实时环境的Java嵌入系统,展现出Java在工业领域的广阔应用前景。

Java语言的出现和发展,得到了IT业界的青睐。作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,优秀的多线程设计也是Java语音的一大特色,多平台的支持是其他编程语言所无法比拟的。Java语言最初并不是为网络环境设计的,用户能用它编写独立的桌面应用程序,在这个领域Java已经被各大厂商接受,如Oracle数据库、Eclipse开发环境都是使用Java语言编写的。当网络出现以后,由于网络软硬件环境的复杂性,常见的编程语言逐渐不能适应这种环境的要求,而Java语言平台无关性的特性正好适应网络这个潮流。

5 发展前景

“Java易得 一将难求 !”Sun大中华区软件、ISV和Java业务总监黄震认为,Java入门容易,但是精通不易。这就好像会画中国画的人不少,业余爱好者很多,但真正能够成为画家的很少。而在中国的Java人才,似乎不只是精通者不够多,真正愿意学习运用Java语言的爱好者数量也不容乐观。在我国,Java的引进与开发相对起步早,发展水平基本与世界同步,但是应用却总是略显滞后。重新反思中国Java的十年发展历程,除了赞誉与庆贺外,更有现实意义的做法是,认真考虑如何为中国Java的未来发展继续涵养水土。目前,Sun公司已在中国建成了由5个授权中心、20多个Internet/Intarnet Java解决方案中心和10所Java大学、若干培训中心组成的三级结构。全面推动Java在中国的普及、应用、研究、开发,培养了数以十万计的Java开发人员。此外,Sun还牵头成立了中外软件厂商的开发联盟。不管对Java是怎样一个态度,有一点不可否认,Java是现在全球最流行的开发工具之一,它拥有一套庞大且完善的类库,内置了其他语言需要的类库甚至是操作系统支持的功能,只需拥有一个虚拟机就可以跨平台移植。总之,Java的出现,确实给整个程序界带来了巨大的冲击,也许现在还无法准确评估Java为整个IT业带来的影响。但是有一点却毋庸置疑,Java将不可避免地影响一代程序员,作为一名职业程序员,应该认真评估一下Java在可以预见的一段时间里带给自己的影响。在美国,越来越多的应用程序是基于Java开发的。Java在企业的应用中的日臻完美,打消了许多人对Java无法应用于大型企业级应用的顾虑,而在国内,Java也已如火如荼。

[1] 美JamieJaworski着,曹康等译,Java开发指南。北京:中国水利水电出版社,1996

[2]廖卫东等编着,Java程序设计实用指南.北京:机械工业出版社,1996;(10)

[3]csdn开发者论坛

猜你喜欢
调用应用程序页面
刷新生活的页面
保健医苑(2022年1期)2022-08-30 08:39:14
核电项目物项调用管理的应用研究
删除Win10中自带的应用程序
电脑报(2019年12期)2019-09-10 05:08:20
LabWindows/CVI下基于ActiveX技术的Excel调用
测控技术(2018年5期)2018-12-09 09:04:46
基于系统调用的恶意软件检测技术研究
利用RFC技术实现SAP系统接口通信
关闭应用程序更新提醒
电脑迷(2012年15期)2012-04-29 17:09:47
同一Word文档 纵横页面并存
浅析ASP.NET页面导航技术
三星电子将开设应用程序下载商店