JSR223规范文档格式.docx
《JSR223规范文档格式.docx》由会员分享,可在线阅读,更多相关《JSR223规范文档格式.docx(42页珍藏版)》请在冰豆网上搜索。
虽然该版本并不像Java5的更新那么多,但是它确实有一些有趣的新特性。
毋庸置疑,其中的一个就是对脚本编写语言的支持。
诸如PHP、Ruby、JavaScript、Python(或Jython)之类的脚本编写语言被广泛应用于许多领域,并由于其灵活性和简单性而大受欢迎。
由于脚本是被解释而不是被编译的,所以可以轻松地从命令行运行和测试它们。
这就压缩了编码/测试周期,并提高了开发人员的生产率。
脚本通常是动态键入的,其语法极富表现力,所编写出的算法要比Java中的等效算法简明得多。
使用起来通常也很有趣。
在很多情况下,从Java使用脚本编写语言会很有用,比如为Java应用程序提供扩展,以便用户可以编写自己的脚本进行扩展或定制化核心功能。
脚本编写语言可读性更强,也更容易编写,所以(从技术上来说)它们是用于为终端用户提供根据需求定制化产品的可能性的理想语言。
早已经有许多Java可用的独立脚本编写包了,包括Rhino、Jacl、Jython、BeanShell、JRuby等。
新消息是Java6通过一个标准接口为脚本编写语言提供了内置支持。
Java6提供对JSR-223规范的全面支持。
该规范提供了一种从Java内部执行脚本编写语言的方便、标准的方式,并提供从脚本内部访问Java资源和类的功能。
Java6附带了与MozillaRhino的JavaScript实现的内置集成。
基于该规范,对诸如PHP、Groovy和BeanShell之类的其它脚本编写语言的支持也正在进行中。
本文关注的是Rhino实现,但是其它语言应该是基本相同的。
那么如何在Java5中使用JSR-223的实现呢?
首先制作JSR-223规范实现的包(包括SUN的JavaScript默认实现):
使用WinRAR等压缩工具打开JRE6中rt.jar文件(注意要提前备份!
我的就是备份为jsr-233.jar),除了com.sun.script、sun.org、javax.script、META-INF目录之外,其余的目录全部删除。
在META-INF目录下建立一个名称为services的目录,在services目录中新建名称为javax.script.ScriptEngineFactory的空文件,在javax.script.ScriptEngineFactory文件中,写入“com.sun.script.javascript.RhinoScriptEngineFactory”,将所有改动保存到jsr-223.jar文件中。
将jsr-223.jar加入到项目的库中,然后编写如下代码进行测试:
ScriptEngineManagermanager=newScriptEngineManager();
ScriptEngineengine=manager.getEngineByName("
js"
);
engine.put("
age"
21);
engine.eval("
if(age>
=18){"
+
"
print('
Oldenoughtovote!
'
"
"
}else{"
print('
Backtoschool!
}"
三、JSR-223与Spring2.0的对比
JSR-223
Spring2.0
实现方式
JSR-223定义的标准接口及其实现,JDK6提供直接支持
根据不同动态语言引擎编写不同的工厂实现类和工具类
平台
JDK5及以上
JDK1.4及以上
可扩展性
可插入的方式加载脚本引擎,JDK级别的多动态语言兼容性
添加新的工厂实现和工具类;
定义XML元数据Schema、编写相应的解释器实现
编程步骤
1.创建ScriptEngine对象;
2.执行脚本;
3.调用脚本函数或脚本对象。
1.定义Java接口;
2.配置XML元数据;
3.创建bean对象。
特性支持
面向接口的统一编程方法;
需要Java编程获取更多库支持
Spring框架本身提供的包括IoC在内的各项特性;
声明式编程
四、什么是JCP(JavaCommunityProcess)
Java技术是最初由SunMicrosystems公司开发的。
JavaCommunityProcess(JCP,一个由全世界的Java开发人员和获得许可的人员组成的开放性组织)对Java技术规范、参考实现和技术兼容性包进行开发和修订。
JCP是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK)。
Java技术和JCP两者的原创者都是SUN计算机公司。
然而,JCP已经由SUN于1995年创造Java的非正式过程,使有兴趣的各方参与定义Java的特征和未来版本的正式过程。
演进到如今有数百名来自世界各地Java代表成员一同监督Java发展的正式程序。
JCP维护的规范包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。
组织成员可以提交JCR(JavaSpecificationRequests),通过特定程序以后,进入到下一版本的规范里面
所有声称符合J2EE规范的J2EE类产品(应用服务器、应用软件、开发工具等),必须通过该组织提供的TCK兼容性测试(需要购买测试包),通过该测试后,需要缴纳J2EE商标使用费。
两项完成,即是通过J2EE认证(AuthorizedJavaLicenseesofJ2EE)。
Java社区进程(JCP),是一个形式化的进程,其允许有关的团体涉足Java平台未来版本和风格的定义。
Java进程包括Java规范请求(JSR)的使用,其描述了被添加到Java平台的被提议的规范和技术的正式文档。
JCP使用JSR(JavaSpecificationRequests)做为正式规范文档描述被提议加入到Java体系中的的规范和技术。
JSR变为final状态前需要正式的公开审查,并由JCPExecutiveCommittee投票决定。
最终的JSR会提供一个参考实现,它是免费而且公开源代码的;
还有一个验证是否符合API规范的TechnologyCompatibilityKit。
1、sun公司
1982年,SunMicrosystems公司诞生于美国斯坦福大学校园。
Sun公司1986年上市,在NASDAQ的标识为SUNW。
创立伊始,Sun的创立者就以与众不同的洞察力率先提出"
网络就是计算机"
的独特理念。
如今,这一理念已驱使Sun成为向为全球用户提供最具实力的硬件、软件与服务的领先供应商。
Sun是开放式网络计算的领导者。
22年来,她一直对客户恪守着体现"
开放思想"
的重要承诺:
促进多种选择,提供创新技术,提升客户价值。
Sun公司是世界上最大的UNIX系统供应商。
主要产品有UltraSPARC系列工作站、服务器和存储器等计算机硬件系统,SunONE品牌软件、Solaris操作环境和Java系列开发工具和应用软件,以及各类服务等,并以其高度灵活性、缩放性、可靠性和可用性等特性赢得全球各个行业客户的青睐。
Sun还一直处于她信息技术领先提供商的最佳位置之上。
这缘于她拥有:
以网络计算为核心的产品线,由解决方案所引领的销售模式,作为核心技术的基础设施系统,具有革新性的组织机构,研发上的巨大投入,以及以客户为中心的发展战略。
自2003年年初开始,Sun公司将"
低成本计算"
作为其核心战略之一,从产品、技术、服务、与合作伙伴的联盟等各个方面全方位地为客户降低成本和复杂性,满足企业客户降低总拥有成本、提升企业效能的迫切需求。
Sun的足迹遍及全球100多个国家和地区,在美国,欧洲、中东和非洲,日本和亚太等地区,Sun产品的市场份额都在攀升。
Sun面对众多客户的喜爱和欢迎,预示她在新的世纪中取得更加辉煌业绩的美好前程。
SUN被甲骨文以74亿美元收购。
sun的作法将会给IBM公司一沉重的打击!
同时在微软方面也带来了重大影响!
这将改变整个世界的格局,而且在jara的开发方面也受到了一定影响。
2、API
API(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
API除了有应用“应用程序接口”的意思外,还特指API的说明文档,也称为帮助文档。
(1)windowsAPI
WindowsAPI是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数。
用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。
这在某种程度上很象Windows的天然代码,其他的语言只是提供一种能自动而且更容易的访问API的方法,VB在这方面作了很多工作,它完全隐藏了API并且提供了在Windows环境下编程的一种完全不同的方法。
这也就是说,你用VB写出的每行代码都会被VB转换为API函数传递给Windows。
例如,Form1.Print...VB将会以一定的参数(你的代码中提供的,或是默认参数)调用TextOut这个API函数。
同样,当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体(这对于你来说是隐藏的),VB获取这个调用并经过分析后生成一个特定事件(Button_Click),
API函数包含在Windows系统目录下的动态连接库文件中(如User32.dll,GDI32.dll,Shell32.dll...)。
(2)API的历史与现状
当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。
而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。
所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。
但是,没有合适的Windows编程平台,程序员想编写具有Windows风格的软件,必须借助API,API也因此被赋予至高无上的地位。
那时