jaas框架go语言 go语言orm框架

jaas干嘛的Java Authentication Authorization Service(JAAS,Java验证和授权API)提供了灵活和可伸缩的机制来保证客户端或服务器端的Java程序 。Java早期的安全框架强调的是通过验证代码的来源和作者 , 保护用户避免受到下载下来的代码的攻击 。JAAS强调的是通过验证谁在运行代码以及他/她的权限来保护系统面受用户的攻击 。它让你能够将一些标准的安全机制 , 例如Solaris NIS(网络信息服务)、Windows NT、LDAP(轻量目录存取协议),Kerberos等通过一种通用的 , 可配置的方式集成到系统中 。
java是什么?怎么念?java: [ 'd?ɑ:v? ]
n. 1.爪哇岛(印尼)
2. 爪哇产的咖啡
3. 【电脑】在网际网络上的应用程序开发语言
例句与用法:
1. An Australian-administered island in the eastern Indian Ocean south of Java. It was annexed by Great Britain in1888 and came under Australian sovereignty in1958.
圣诞岛爪哇岛南部印度洋东部的一座岛屿,由澳大利亚管辖 。在1888年由英国吞并,1958年主权归澳大利亚
2. A volcanic island of Indonesia between Sumatra and Java. A violent explosion in August1883 blew the island apart and caused a tidal wave that killed more than36,000 people.
喀拉喀托火山位于苏门答腊和爪哇之间的一个火山岛 。1883年8月,该岛火山的一次猛烈的喷发使该岛裂开,并引发了一场使36,000多人丧生的海啸
3. He pictured to himself what it might be like to live in Java.
他想像要是生活在爪哇的情形.
4. A web object can be a web page(or part thereof), an image, plain file, a directory, a Java applet, or CGI script.
一个Web对象可以是一个网页(或其中的部分)、一幅图象、纯文本文件、一个目录,一个Java小程序或CGI手稿 。
英英解释:
名词java:
1. an island in Indonesia south of Borneo; one of the world's most densely populated regions
2. a beverage consisting of an infusion of ground coffee beans
同义词:coffee
3. a simple platform-independent object-oriented programming language used for writing applets that are downloaded from the World Wide Web by a client and run on the client's machine
编辑本段Java简介
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称 。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算 。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet 。另一方面,Java技术也不断更新 。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成 。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分 。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行 。现在Java平台已经嵌入了几乎所有的操作系统 。这样Java程序可以只编译一次 , 就可以在各种系统中运行 。Java应用编程接口已经从1.1x版发展到1.2版 。目前常用的Java平台基于Java1.4,最近版本为Java1.7 。
Java分为三个体系J2SE(Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition) 。
编辑本段Java语言
Java语言是一个支持网络计算的面向对象程序设计语言 。Java语言吸收了Smalltalk语言和C语言的优点,并增加了其它特性 , 如支持并发程序设计、网络通信、和多媒体数据控制等 。主要特性如下:
1、Java语言是简单的 。Java语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用Java 。另一方面,Java丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换 。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧 。
2、Java语言是一个面向对象的 。Java语言提供类、接口和继承等原语 , 为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements) 。Java语言全面支持动态绑定,而C语言只对虚函数使用动态绑定 。总之 , Java语言是一个纯的面向对象程序设计语言 。
3、Java语言是分布式的 。Java语言支持Internet应用的开发 , 在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等 。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段 。
4、Java语言是健壮的 。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证 。对指针的丢弃是Java的明智选择 。Java的安全检查机制使得Java更具健壮性 。
5、Java语言是安全的 。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击 。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵 。
6、Java语言是体系结构中立的 。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行 。这种途径适合于异构的网络环境和软件的分发 。
7、Java语言是可移植的 。这种可移植性来源于体系结构中立性 , 另外,Java还严格规定了各个基本数据类型的长度 。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的 。
8、Java语言是解释型的 。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行 。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中 。
9、Java是高性能的 。与那些解释型的高级脚本语言相比 , Java的确是高性能的 。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C。
10、Java语言是多线程的 。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建 。通常有两种方法来创建线程:其一 , 使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程 。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码 。线程的活动由一组方法来控制 。Java语言支持多个线程的同时执行 , 并提供多线程之间的同步机制(关键字为synchronized) 。
11、Java语言是动态的 。Java语言的设计目标之一是适应于动态变化的环境 。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类 。这也有利于软件的升级 。另外 , Java中的类有一个运行时刻的表示 , 能进行运行时刻的类型检查 。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用 。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本 。Java的编译一次 , 到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式 。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库 。
编辑本段相关技术
1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口 。
2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用 。
3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序 。一个Java对象的方法能被远程Java虚拟机调用 。这样 , 远程方法激活可以发生在对等的两端 , 也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的 。
4、Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无逢的互操作性 。这使得Java能集成异构的商务信息资源 。
5、JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无逢的连接 。这个接口屏蔽了企业网络所使用的各种命名和目录服务 。
6、JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法 。
7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面 。
8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控 。
在Java技术中 , 值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台 , 但使用Java语言 。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念 。一个JavaBean的主要特征包括属性、方法和事件 。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean 。JavaBean的优势还在于Java带来的可移植性 。现在,EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构,这个模型支持多层的分布式对象应用 。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围 。
编辑本段Java开源项目
Spring Framework 【Java开源 J2EE框架】
Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架 。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯 。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器 。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的 。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误 。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案 。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术 , 例如JTA或者JDBC事务提供一个一致的编程模型 。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects 。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务 。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架 。【SpringIDE:Eclipse平台下一个辅助开发插件】.
WebWork 【Java开源 Web框架】
WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架 。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目 。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来 。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证 , 类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等 。WebWork2建立在Xwork之上,处理HTTP的响应和请求 。WebWork2使用ServletDispatcher将HTTP请求的变成 Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射 。WebWork2支持多视图表示,视图部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等 。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts 【Java开源 Web框架】
Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的 。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注 。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间 , 所以说Struts是一个非常不错的应用框架 。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
【jaas框架go语言 go语言orm框架】Hibernate 【Java开源 持久层框架】
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任 。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz 【Java开源 Job调度】
Quartz 是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用 。Quartz可以用来创建简单或为运行十个 , 百个 , 甚至是好几万个Jobs这样复杂的日程序表 。Jobs可以做成标准的Java组件或 EJBs 。Quartz的最新版本为Quartz 1.5.0 。
Velocity 【Java开源 模板引擎】
Velocity 是一个基于java的模板引擎(template engine) 。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象 。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果 , 而由java程序开发人员关注业务逻辑编码 。Velocity将java代码从web页面中分离出来 , 这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案 。Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用 。Velocity也可以为Turbine web开发架构提供模板服务(template service) 。Velocity Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发 。【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS 【Java开源 持久层框架】
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象 , 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句 。相对Hibernate等 “全自动”ORM机制而言 , ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间 。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义 。
Compiere ERPCRM 【Java开源ERP与CRM系统】
Compiere ERPCRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性 。易于安装、易于实施、易于使用 。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了 。
Roller Weblogger 【Java开源 Blog博客】
这个weblogging 设计得比较精巧,源代码是很好的学习资料 。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑 , TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口 。
Eclipse 【Java开源 开发工具】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元 , 而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构 。
XPlanner 【Java开源 项目管理】
XPlanner 一个基于Web的XP团队计划和跟踪工具 。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具 , XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题 。XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率 , 个人工时报表 , SOAP界面支持 。
HSQLDB 【Java开源 DBMS数据库】
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据 。支持ANSI-92 标准 SQL语法 。而且他占的空间很小 。大约只有160K,拥有快速的数据库引擎 。
Liferay 【Java开源 Portal门户】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术 , 基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能 。
主要特点:
1、提供单一登陆接口,多认证模式(LDAP或SQL);
2、管理员能通过用户界面轻松管理用户 , 组,角色;
3、用户能可以根据需要定制个性化的portal layout;
4、能够在主流的J2EE应用服务器上运行 , 如JBoss Jetty/Tomcat,JOnAS;
5、支持主流的数据库,如PostgreSQL,MySQL;
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
7、支持包括中文在内的多种语言;
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java开源 Portal门户】
Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现,使用的技术是Java和XML 。用户可以使用浏览器,支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息 。Jetspeed扮演着信息集中器的角色 , 它能够把信息集中起来并且很容易地提供给用户 。
Jetspeed具有如下的特征:
* 即将成为标准化的Java Portlet API
* 基于模板的布局, 包括JSP和Velocity
* 通过开放的内容同步技术支持远程XML内容交换
* 定制默认的主页
* 使用数据库进行用户认证
* 内存缓存技术, 加快页面的响应
* 通过Rich Site Summary技术, 支持同步内容
* 和Cocoon, WebMacro, Velocity集成.
* Wireless Markup Language (WML) 支持
* 使用XML格式的配置文件注册portlet.
* 完整的Web Application Archive (WAR) 支持
* Web应用程序开发的基础设施
* 可以在本地缓存远程内容
* 与Avantgo同步
* 可移植到所有支持JDK1.2和Servlet 2.2的平台
* 与Turbine模块和服务集成
* 可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务
* 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet
* 使用皮肤技术使得用户可以选择portlet的颜色和显示属性
* 自定义功能是的管理员可以选择portlet以及定义个人页面的布局
* 在数据库中存储PSML
* 通过Jetspeed的安全portlets管理用户, 组,角色和权限
* 基于角色对访问portlet进行控制
JOnAS 【Java开源 J2EE服务器】
JOnAS 是一个开放源代码的J2EE实现,在ObjectWeb协会中开发 。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范 。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail。
什么是JAAS,以及灵活的Java安全Java Authentication Authorization Service(JAAS , Java验证和授权API)提供jaas框架go语言了灵活和可伸缩的机制来保证客户端或服务器端的Java程序 。Java早期的安全框架强调的是通过验证代码的来源和作者,保护用户避免受到下载下来的代码的攻击 。JAAS强调的是通过验证谁在运行代码以及jaas框架go语言他/她的权限来保护系统面受用户的攻击 。它让你能够将一些标准的安全机制,例如Solaris NIS(网络信息服务)、Windows NT、LDAP(轻量目录存取协议),Kerberos等通过一种通用的,可配置的方式集成到系统中 。
你是否曾经需要为一个应用程序实现登录模块呢?如果你是一个比较有经验的程序员,相信你这样的工作做过很多次,而且每次都不完全一样 。你有可能把你的登录模块建立在Oracle数据库的基础上,也有可能使用的是NT的用户验证,或者使用的是LDAP目录 。如果有一种方法可以在不改变应用程序级的代码的基础上支持上面提到的所有这一些安全机制,对于程序员来说一定是一件幸运的事 。
现在你可以使用JAAS实现上面的目标 。JAAS是一个比较新的的Java API 。在J2SE 1.3中,它是一个扩展包;在J2SE 1.4中变成了一个核心包 。在本文中 , 我们将介绍JAAS的一些核心概念 , 然后通过例子说明如何将JAAS应用到实际的程序中 。本文的例子是根据我们一个基于Web的Java应用程序进行改编的,在这个例子中,我们使用了关系数据库保存用户的登录信息 。由于使用了JAAS,我们实现了一个健壮而灵活的登录和身份验证模块 。
客户端和服务器端的JAAS
开发人员可以将JAAS应用到客户端和服务器端 。在客户端使用JAAS很简单 。在服务器端使用JAAS时情况要复杂一些 。目前在应用服务器市场中的JAAS产品还不是很一致,使用JAAS的J2EE应用服务器有一些细微的差别 。例如JBossSx使用自己的结构 , 将JAAS集成到了一个更大的安全框架中;而虽然WebLogic 6.x也使用了JAAS,安全框架却完全不一样 。
现在你能够理解为什么我们需要从客户端和服务器端的角度来看JAAS了 。我们将在后面列出两种情况下的例子 。为了使服务器端的例子程序更加简单,我们使用了Resin应用服务器 。
核心JAAS类
在使用JAAS之前,你首先需要安装JAAS 。在J2SE 1.4中已经包括了JAAS,但是在J2SE 1.3中没有 。如果你希望使用J2SE 1.3,你可以从SUN的官方站点上下载JAAS 。当正确安装了JAAS后,你会在安装目录的lib目录下找到jaas.jar 。你需要将该路径加入Classpath中 。(注:如果你安装了应用服务器,其中就已经包括了JAAS , 请阅读应用服务器的帮助文档以获得更详细的信息) 。在Java安全属性文件java.security中,你可以改变一些与JAAS相关的系统属性 。该文件保存在/lib/security目录中 。
在应用程序中使用JAAS验证通常会涉及到以下几个步骤:
1. 创建一个LoginContext的实例 。
2. 为了能够获得和处理验证信息 , 将一个CallBackHandler对象作为参数传送给LoginContext 。
3. 通过调用LoginContext的login()方法来进行验证 。
4. 通过使用login()方法返回的Subject对象实现一些特殊的功能(假设登录成功) 。
下面是一个简单的例子:
LoginContext lc = new LoginContext("MyExample");
try {
lc.login();
} catch (LoginException) {
// Authentication failed.
}
// Authentication successful, we can now continue.
// We can use the returned Subject if we like.
Subject sub = lc.getSubject();
Subject.doAs(sub, new MyPrivilegedAction());
在运行这段代码时,后台进行了以下的工作 。
1. 当初始化时,LoginContext对象首先在JAAS配置文件中找到MyExample项,然后更具该项的内容决定该加载哪个LoginModule对象 。
2. 在登录时 , LoginContext对象调用每个LoginModule对象的login()方法 。
3. 每个login()方法进行验证操作或获得一个CallbackHandle对象 。
4. CallbackHandle对象通过使用一个或多个CallBack方法同用户进行交互,获得用户输入 。
5. 向一个新的Subject对象中填入验证信息 。
我们将对代码作进一步的解释 。但是在这之前,让我们先看代码中涉及到的核心JAAS类和接口 。这些类可以被分为三种类型:
普通类型 Subject,Principal , 凭证
验证 LoginContext,LoginModule , CallBackHandler , Callback
授权 Policy,AuthPermission,PrivateCredentialPermission
上面列举的类和接口大多数都在javax.security.auth包中 。在J2SE 1.4中,还有一些接口的实现类在com.sun.security.auth包中 。
普通类型:Subject,Principal,凭证 Subject类代表了一个验证实体 , 它可以是用户、管理员、Web服务,设备或者其他的过程 。该类包含了三中类型的安全信息: 身份(Identities):由一个或多个Principal对象表示 公共凭证(Public credentials):例如名称或公共秘钥 私有凭证(Private credentials):例如口令或私有密钥 Principal对象代表了Subject对象的身份 。它们实现了java.security.Principal和java.io.Serializable接口 。在Subject类中,最重要的方法是getName() 。该方法返回一个身份名称 。在Subject对象中包含了多个Principal对象,因此它可以拥有多个名称 。由于登录名称、身份证号和Email地址都可以作为用户的身份标识,可见拥有多个身份名称的情况在实际应用中是非常普遍的情况 。在上面提到的凭证并不是一个特定的类或借口,它可以是任何对象 。凭证中可以包含任何特定安全系统需要的验证信息,例如标签(ticket) , 密钥或口令 。Subject对象中维护着一组特定的私有和公有的凭证,这些凭证可以通过getPrivateCredentials()和getPublicCredentials()方法获得 。这些方法通常在应用程序层中的安全子系统被调用 。验证:LoginContext 在应用程序层中,你可以使用LoginContext对象来验证Subject对象 。LoginContext对象同时体现了JAAS的动态可插入性(Dynamic Pluggability) , 因为当你创建一个LoginContext的实例时,你需要指定一个配置 。LoginContext通常从一个文本文件中加载配置信息,这些配置信息告诉LoginContext对象在登录时使用哪一个LoginModule对象 。下面列出了在LoginContext中经常使用的三个方法: login () 进行登录操作 。该方法激活了配置中制定的所有LoginModule对象 。如果成功,它将创建一个经过了验证的Subject对象;否则抛出LoginException异常 。getSubject () 返回经过验证的Subject对象 logout () 注销Subject对象 , 删除与之相关的Principal对象和凭证 验证:LoginModule LoginModule是调用特定验证机制的接口 。J2EE 1.4中包含了下面几种LoginModule的实现类: JndiLoginModule 用于验证在JNDI中配置的目录服务 Krb5LoginModule 使用Kerberos协议进行验证 NTLoginModul 使用当前用户在NT中的用户信息进行验证 UnixLoginModule 使用当前用户在Unix中的用户信息进行验证 同上面这些模块绑定在一起的还有对应的Principal接口的实现类,例如NTDomainPrincipal和UnixPrincipal 。这些类在com.sun.security.auth包中 。LoginModule接口中包含了五个方法: initialize () 当创建一LoginModule实例时会被构造函数调用 login () 进行验证 commit () 当LgoninContext对象接受所有LoginModule对象传回的结果后将调用该方法 。该方法将Principal对象和凭证赋给Subject对象 。abort () 当任何一个LoginModule对象验证失败时都会调用该方法 。此时没有任何Principal对象或凭证关联到Subject对象上 。logout () 删除与Subject对象关联的Principal对象和凭证 。在应用程序的代码中,程序员通常不会直接调用上面列出的方法,而是通过LigonContext间接调用这些方法 。验证:CallbackHandler和Callback CallbackHandler和Callback对象可以使LoginModule对象从系统和用户那里收集必要的验证信息,同时独立于实际的收集信息时发生的交互过程 。JAAS在javax.sevurity.auth.callback包中包含了七个Callback的实现类和两个CallbackHandler的实现类: ChoiceCallback、ConfirmationCallback、LogcaleCallback、NameCallback、PasswordCallback、TextInputCallback、TextOutputCallback、DialogCallbackHandler和TextCallBackHandler 。Callback接口只会在客户端会被使用到 。
java和点net是干什么的?Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称 。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的Web、Internet计算 。从此 , Java被广泛接受并推动了Web的迅速发展 , 常用的浏览器现在均支持Java applet 。另一方面,Java技术也不断更新 。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成 。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口 , 可分为基本部分和扩展部分 。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行 。现在Java平台已经嵌入了几乎所有的操作系统 。这样Java程序可以只编译一次 , 就可以在各种系统中运行 。Java应用编程接口已经从1.1.x版发展到1.2版 。目前常用的Java平台基于Java1.2 。
Java语言
Java语言是一个支持网络计算的面向对象程序设计语言 。Java语言吸收了Smalltalk语言和C语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等 。主要特性如下:
1)Java语言是简单的 。Java语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用Java 。另一方面 , Java丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换 。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧 。
2)Java语言是一个面向对象的 。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements) 。Java语言全面支持动态绑定,而C语言只对虚函数使用动态绑定 。总之,Java语言是一个纯的面向对象程序设计语言 。
3) Java语言是分布式的 。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等 。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段 。
4) Java语言是健壮的 。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证 。对指针的丢弃是Java的明智选择 。Java的安全检查机制使得Java更具健壮性 。
5)Java语言是安全的 。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击 。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵 。
6)Java语言是体系结构中立的 。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行 。这种途径适合于异构的网络环境和软件的分发 。
7) Java语言是可移植的 。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度 。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的 。
8)Java语言是解释型的 。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行 。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中 。
9)Java是高性能的 。与那些解释型的高级脚本语言相比,Java的确是高性能的 。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C。
10)Java语言是多线程的 。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建 。通常有两种方法来创建线程:其一 , 使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程 。值得注意的是Thread类已经实现了Runnable接口 , 因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码 。线程的活动由一组方法来控制 。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized) 。
11)Java语言是动态的 。Java语言的设计目标之一是适应于动态变化的环境 。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类 。这也有利于软件的升级 。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查 。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用 。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本 。Java的编译一次 , 到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式 。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库 。
1) JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口 。
2) EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用 。
3) Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序 。一个Java对象的方法能被远程Java虚拟机调用 。这样,远程方法激活可以发生在对等的两端 , 也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的 。
4) Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无逢的互操作性 。这使得Java能集成异构的商务信息资源 。
5) JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无逢的连接 。这个接口屏蔽了企业网络所使用的各种命名和目录服务 。
6) JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法 。
7) JMS(Java Message Service)提供企业消息服务 , 如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面 。
8) JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控 。
在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构 , 它独立于平台,但使用Java语言 。一个JavaBean是一个满足JavaBeans规范的Java类 , 通常定义了一个现实世界的事物或概念 。一个JavaBean的主要特征包括属性、方法和事件 。通常 , 在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean , 也可以使用JavaBean构造出新的JavaBean 。JavaBean的优势还在于Java带来的可移植性 。现在,EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构 , 这个模型支持多层的分布式对象应用 。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围 。
Java开源项目
Spring Framework【Java开源 J2EE框架】
Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架 。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯 。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器 。然而 , 这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的 。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架 , 极大的改进了效率并且减少了可能的错误 。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案 。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型 。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects 。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务 。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架 。【SpringIDE:Eclipse平台下一个辅助开发插件】.
WebWork【Java开源 Web框架】
WebWork 是由OpenSymphony组织开发的 , 致力于组件化和代码重用的拉出式MVC模式J2EE Web框架 。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork , 但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目 。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现 , 并且完全从web层脱离出来 。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证 , 类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等 。WebWork2建立在Xwork之上 , 处理HTTP的响应和请求 。WebWork2使用ServletDispatcher将HTTP请求的变成 Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射 。WebWork2支持多视图表示,视图部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等 。在WebWork2.2中添加了对AJAX的支持 , 这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts【Java开源 Web框架】
Struts 是一个基于Sun J2EE平台的MVC框架 , 主要是采用Servlet和JSP技术来实现的 。由于Struts能充分满足应用开发的需求 , 简单易用,敏捷迅速,在过去的一年中颇受关注 。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式 , 极大的节省了时间,所以说Struts是一个非常不错的应用框架 。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
Hibernate【Java开源 持久层框架】
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任 。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz【Java开源 Job调度】
Quartz 是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用 。Quartz可以用来创建简单或为运行十个 , 百个 , 甚至是好几万个Jobs这样复杂的日程序表 。Jobs可以做成标准的Java组件或 EJBs 。Quartz的最新版本为Quartz 1.5.0 。
Velocity【Java开源 模板引擎】
Velocity 是一个基于java的模板引擎(template engine) 。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象 。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说 , 页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码 。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案 。Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用 。Velocity也可以为Turbine web开发架构提供模板服务(template service) 。Velocity Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发 。【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS【Java开源 持久层框架】
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致 , 而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句 。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间 。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义 。
Compiere ERPCRM【Java开源 ERP与CRM系统】
Compiere ERPCRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性 。易于安装、易于实施、易于使用 。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了 。
Roller Weblogger【Java开源 Blog博客】
这个weblogging 设计得比较精巧,源代码是很好的学习资料 。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口 。
Eclipse 【Java开源 开发工具】
Eclipse平台是IBM向开发源码社区捐赠的开发框架 , 它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构 。
XPlanner 【Java开源 项目管理】
XPlanner 一个基于Web的XP团队计划和跟踪工具 。XP独特的开发概念如iteration、user stories等 , XPlanner都提供了相对应的的管理工具 , XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题 。XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持 。
HSQLDB 【Java开源 DBMS数据库】
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据 。支持ANSI-92 标准 SQL语法 。而且他占的空间很小 。大约只有160K,拥有快速的数据库引擎 。
Liferay 【Java开源 Portal门户】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获?。褂?Apahce Lucene实现全文检索功能 。
主要特点:
1、提供单一登陆接口,多认证模式(LDAP或SQL);
2、管理员能通过用户界面轻松管理用户,组 , 角色;
3、用户能可以根据需要定制个性化的portal layout;
4、能够在主流的J2EE应用服务器上运行,如JBoss Jetty/Tomcat,JOnAS;
5、支持主流的数据库,如PostgreSQL,MySQL;
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
7、支持包括中文在内的多种语言;
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java开源 Portal门户】
Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户.
Jetspeed具有如下的特征:
* 即将成为标准化的Java Portlet API
* 基于模板的布局, 包括JSP和Velocity
* 通过开放的内容同步技术支持远程XML内容交换
* 定制默认的主页
* 使用数据库进行用户认证
* 内存缓存技术, 加快页面的响应
* 通过Rich Site Summary技术, 支持同步内容
* 和Cocoon, WebMacro, Velocity集成.
* Wireless Markup Language (WML) 支持
* 使用XML格式的配置文件注册portlet.
* 完整的Web Application Archive (WAR) 支持
* Web应用程序开发的基础设施
* 可以在本地缓存远程内容
* 与Avantgo同步
* 可移植到所有支持JDK1.2和Servlet 2.2的平台
* 与Turbine模块和服务集成
* 可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务
* 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet
* 使用皮肤技术使得用户可以选择portlet的颜色和显示属性
* 自定义功能是的管理员可以选择portlet以及定义个人页面的布局
* 在数据库中存储PSML
* 通过Jetspeed的安全portlets管理用户, 组,角色和权限
* 基于角色对访问portlet进行控制
JOnAS【Java开源 J2EE服务器】
JOnAS 是一个开放源代码的J2EE实现,在ObjectWeb协会中开发 。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范 。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail。
JFox3.0【Java开源 J2EE服务器】
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始 , JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的 。
JFox 3.0 拥有以下特性:
1. 重新设计的 IoC 微内核 , 融入 OSGi 模块化思想
2. 设计成嵌入式架构,能够和任何 Java Web Server集成部署
3. 支持 EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件
4. 支持 EJB 发布成Web Service
5. 采用 JOTM()提供事务处理,支持两阶段提交(2PC)
6. 采用 XAPool() 提供 XA DataSource , 支持智能连接池管理
7. 内置 MVC 框架,实现自动Form Mapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker页面引擎 , 并支持直接在Action中注入EJB
8. 支持多应用模块部署,让中大型应用充分享受模块化开发带来的优势
9. 提供 Manager 管理模块,可以查看和管理各种运行时参数
10. 提供根据 JFox 特色重写的 Petstore 应用模块
我也是没什么基础上的培训班,同时学了java和.net 。不过我把主要精力放在了java上 。目前在做java程序员 。感觉不管java还是.net都是一样的,开始学习的时候是比较吃力 。重要的是要做大量的练习,慢慢的理解了面向对象的思想后就会比较轻松了 。我在学习.net之前,学了C#,同样是面向对象的东西,理解了java之后很容易就能上手 。.net我学的不是很深 。java后期要学习的框架比较多 , spring,struts,hibernate等等... 不过用论坛上的高手的话说:“编程语言只是工具,重要的是编程的思想 。”我目前也还是个菜鸟,感觉上可能.net更容易上手,不过只要你对编程真的有兴趣的话,耐下心来多努力,会好起来的 。祝好运 。
作为一个JAVA程序员, 应该掌握哪些知识, 目前, 比较流行的java开发框架有哪些,java基础,三大主流数据库mysql,orcale , sql serverjaas框架go语言;然后是j2ee的相关知识,也就是java开发框架 。
Spring Framework 【Java 开源JEE框架】
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架 。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯 。Spring的架构基础是基于使用JavaBean属性的
Inversion of
Control容器 。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的 。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误 。Spring的数据访问架构还集成了
Hibernate和其他O/R mapping解决方案 。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者
JDBC事务提供一个一致的编程模型 。Spring提供了一个用标准Java语言编写的AOP框架 , 它给POJOs提供了声明式的事务管理和其他企业事务
--如果jaas框架go语言你需要--还能实现你自己的aspects 。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务 。
Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架 。【SpringIDE:Eclipse平台下一个辅助开发插件】.
WebWork 【Java开源Web开发框架】
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE
Web框架 。WebWork目前最新版本是2.1 , 现在的WebWork2.x前身是Rickard
Oberg开发的WebWork , 但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目 。
Xwork简洁、灵活功能强大 , 它是一个标准的Command模式实现 , 并且完全从web层脱离出来 。
Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证 , 类型转换,强大的表达式语言(OGNL – the
Object Graph Notation Language) , IoC(Inversion of Control倒置控制)容器等 。
WebWork2建立在Xwork之上,处理HTTP的响应和请求 。WebWork2使用ServletDispatcher将HTTP请求的变成
Action(业务层Action类),
session(会话)application(应用程序)范围的映射 , request请求参数映射 。WebWork2支持多视图表示,视图部分可以使用
JSP, Velocity, FreeMarker,
JasperReports,XML等 。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.
【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts 【Java开源Web开发框架】
Struts是一个基于Sun
J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的 。由于Struts能充分满足应用开发的需求 , 简单易用,敏捷迅速 , 在过去的一年中颇受关注 。Struts把Servlet、JSP、自定义标签和信息资源(message
resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间 , 所以说Struts是一个非常不错的应用框架 。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
Hibernate 【Java开源持久层框架】
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装 , 使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是 , Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任 。Eclipse平台下的Hibernate辅助开发工具:【Hibernate
Synchronizer】【MiddlegenIDE】
Quartz 【Java开源调度框架】
Quartz是OpenSymphony开源组织在Job
scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用 。Quartz可以用来创建简单或为运行十个,百个 , 甚至是好几万个Jobs这样复杂的日程序表 。Jobs可以做成标准的Java组件或
EJBs 。Quartz的最新版本为Quartz 1.5.0 。
Velocity 【Java开源模板引擎】
Velocity是一个基于java的模板引擎(template engine) 。它允许任何人仅仅简单的使用模板语言(template
language)来引用由java代码定义的对象 。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点 , 也就是说,页面设计人员可以只关注页面的显示效果 , 而由java程序开发人员关注业务逻辑编码 。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案 。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用 。Velocity也可以为Turbine
web开发架构提供模板服务(template
service) 。Velocity Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发 。【VeloEclipse
:Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS 【Java开源持久层框架】
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象 , 这一层与通过Hibernate 实现ORM
而言基本一致,而对于具体的数据操作 , Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL
语句 。相对Hibernate等 “全自动”ORM机制而言,ibatis
以SQL开发的工作量和数据库移植性上的让步 , 为系统设计提供了更大的自由空间 。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显
得别具意义 。
Compiere ERPCRM 【Java开源ERP与CRM系统】
Compiere
ERPCRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域 , 支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性 。易于安装、易于实施、易于使用 。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了 。
Roller Weblogger 【Java开源Blog博客】
这个weblogging
设计得比较精巧,源代码是很好的学习资料 。它支持weblogging应有的特性如:评论功能 , 所见即所得HTML编辑 , TrackBack,提供页面模板,RSS
syndication,blogroll管理和提供一个XML-RPC 接口 。
Eclipse 【Java开源IDE】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数
—4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构 。
XPlanner 【Java开源项目管理】
XPlanner 一个基于Web的XP团队计划和跟踪工具 。XP独特的开发概念如iteration、user
stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题 。
XPlanner特点包括:简单的模型规划 , 虚拟笔记卡(Virtual note cards),iterations、user
stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持 。
HSQLDB 【Java开源开源数据库】
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据 。支持ANSI-92 标准
SQL语法 。而且他占的空间很小 。大约只有160K,拥有快速的数据库引擎 。
Liferay 【Java开源门户系统】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts
框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获?。褂?Apahce
Lucene实现全文检索功能 。
主要特点:
提供单一登陆接口 , 多认证模式(LDAP或 SQL);
管理员能通过用户界面轻松管理用户,组,角色;
用户能可以根据需要定制个性化的portal layout;
能够在主流的J2EE应用服务器上运行,如JBoss Jetty/Tomcat,JOnAS;
支 持主流的数据库 , 如PostgreSQL,MySQL;
使用了第三放的开源项目,如Hibernate, Lucene, Struts;
支持包括中文在内的多种语言;
采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java开源门户系统】
Jetspeed是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器,
支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色,
它能够把信息集中起来并且很容易地提供给用户.
Jetspeed具有如下的特征:
即将成为标准化的Java Portlet API
基于模板的布局, 包括JSP和Velocity
通过开放的内容同步技术支持远程XML 内容交换
定制默认的主页
使用数据库进行用户认证
内存缓存技术, 加快页面的响应
通 过Rich Site Summary技术, 支持同步内容
和Cocoon, WebMacro, Velocity集成.
Wireless Markup Language (WML) 支持
使用XML格式的配置文件注册portlet.
完整的 Web Application Archive (WAR) 支持
Web应用程序开发的基础设施
可以在本地缓 存远程内容
与Avantgo同步
可移植到所有支持JDK1.2和Servlet 2.2的平台
与 Turbine模块和服务集成
可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务
持续化服 务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet
使用皮肤技术使得用户可以选择portlet的颜 色和显示属性
自定义功能是的管理员可以选择portlet以及定义个人页面的布局
在数据库中存储PSML
通 过Jetspeed的安全portlets管理用户, 组,角色和权限
基于角色对访问portlet进行控制
JOnAS 【Java开源应用服务器】
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发 。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet
2.3和JSP 1.2规范 。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA
、JMS、JMX、JNDI、JAAS、JavaMail。
JFox3.0 【Java开源应用服务器】
JFox 是 Open Source Java EE Application Server , 致力于提供轻量级的Java
EE应用服务器 , 从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发!
如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台 , 那么JFox正是您需要的 。
JFox 3.0 拥有以下特性:
重 新设计的 IoC 微内核 , 融入 OSGi 模块化思想
设计成嵌入式架构,能够和任何 Java Web Server集成部署
支 持 EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件
支持 EJB 发布成Web Service
采 用 JOTM()提供事务处理 , 支持两阶段提交 (2PC)
采用 XAPool() 提供 XA
DataSource , 支持智能连接池管理
内置 MVC 框架,实现自动Form
Mapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker页面引擎,并支持直接在
Action中注入EJB
支持多应用模块部署,让中大型应用充分享受模块化开发带来的优势
提供 Manager 管理模块,可以查看和管理各种运行时参数
提供根据 JFox 特色重写的 Petstore 应用模块
EasyJWeb 【Java开源Web开发框架】
EasyJWeb是基于java技术,应用于WEB应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践 , 框架充分借签了当前主要流行的开源Web框架(Struts、JSF、Tapestry
、Webwork),吸取了其优点及精华,利用Velocity作为模板页面引擎 , 是一个实现了页面及代码完全分离的MVC开发框架 。是一个能实现中小型
Web应用系统快速开发的简易Web框架 。
通过EasyJWeb
Tools提供的配套开发工具,可以实现基于EasyJWeb框架的Web应用快速开发,包括常用应用软件的代码自生成、数据库添删改查(CRUD)代码生成、自动页面模版生成、配置文件管理等 。
框架特点:
零配文件置支持 。以前我们每接触一个框架,开始总都要被
他的配置文件折腾一番 。EasyJWeb实现零配置支持,可以不写一句配置文件就在框架基础上构建你的运用 。(适合小型网站系统) 。
简 易的模板页面设计支持:放弃使用jsp , 使用简单Velocity脚本语言作为页面模板 。
页面程序完全分离:实现显示页面与程序逻辑 的完全分离,克服了传统jsp页面难于维护的问题 。
基于页面组件的框架 。灵活的页面组件配置,可以直接通过配置文件设置字段级的事件 组件 。
快速开发支持:通过EasyJWeb
Tools,可以自动生成应用软件模板代码,定制并管理自己的J2EE代码模板,代码生成模板支持最流行的实用Java开发框架(如hibernate、
Spring等)实现快速开发 。
Tapestry 【Java开源Web开发框架】
Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用 。一个组件就是任意一个带有
jwcid属性的html标记 。其中jwc的意思是Java Web
Component 。Tapestry使得java代码与html完全分离 , 利用这个框架开发大型应用变得轻而易举 。并且开发的应用很容易维护和升级 。
Tapestry支持本地化,其错误报告也很详细 。Tapestry主要利用javabean和xml技术进行开发 。【Spindle:Tapestry
辅助开发Eclipse插件】.
FreeMarker 【Java开源模板引擎】
FreeMarker允许Java
servlet保持图形设计同应用程序逻辑的分离 , 这是通过在模板中密封HTML完成的 。模板用servlet提供的数据动态地生成
HTML 。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度 。
【FreeMarker Eclipse Plugin与FreeMarker IDE:Eclipse平台下的辅助开发工具】
Lucene 【Java开源搜索引擎】
Apache
Lucene是一个基于Java全文搜索引擎 , 利用它可以轻易地为Java软件加入全文搜寻功能 。Lucene的最主要工作是替文件的每一个字作索引 , 索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件 , 编排和使用索引的API,它的强大之处除了高效和简单外 , 是最重要的是使使用者可以随时应自已需要自订其功能 。
iText 【Java开源PDF类库】
iText是一个能够快速产生PDF文件的java类库 。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的 。它的类库尤其与java
Servlet有很好的给合 。使用iText与PDF能够使你正确的控制Servlet的输出 。
Groovy 【Java开源动态语言】
Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和 Smalltalk的许多强大的特性 。
Groovy已在WebWork2中的应用 。它可以被编译为标准的Java Bytecode 。
OpenCms 【Java开源CMS系统】
OpenCms是一个J2EE的产品 , 它是用 Java写成的 。它和Tomcat捆绑在一起 。但是也能够使用ATG
Dynamo、WebLogic和WebSphere 。OpenCms支持多种RDBMS来保存内容 , 包括Oracle、SQL
Server、Sybase和mySQL 。新版本提供了一个新的模板引擎,JSP支持,一种新的连接管理系统,提高了稳定性 。
JUnit 【Java开源测试工具】
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing
framework) 。Junit测试是程序员测试 , 即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能 。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了 。
BlueJ 【Java开源IDE】
BlueJ是一个专门为入门级教学设计的JavaTM 开发环境 。它是由澳大利亚墨尔本Monash大学BlueJ小组设计并开发的 。
XWiki 【Java开源Wiki系统】
XWiki是一个强大的Java开源的Wiki引擎 。它支持一些受欢迎的特性如:
内 容管理(浏览/编辑/预览/保存),
支持附件,
版本控制 ,
全文本搜索,
权 限管理
使用Hibernate进行数据存储,
RSS输出与显示外部的RSS feeds,
多 语言支持,
提供XML/RPC的API,
WYSIWYG HTML编辑器,
导出为PDF
Groovy 脚本支持等等.... 。
EJBCA 【Java开源网络服务器端组件】
EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA 。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成 。
JXTA 【Java开源其它项目】
Sun微系统公司公开了旨在建立P2P(Peer to
Peer)通用技术基础的JXTA计划 。JXTA技术是网络编程和计算的平台,用以解决现代分布计算尤其是点对点(P2P)计算中出现的问题 。
JXTA将建立核心的网络计算技术,提供支持在任何平台、任何地方以及任何时间实现P2P计算的一整套简单、小巧和灵活的机制 。JXTA首先将归纳目前
P2P的功能特别,而后建立核心的技术来表达目前的P2P计算的局限性 。其重点是创建基本的机制,而具体的策略选择权则交给应用的开发者 。JXTA将充分利用XML、Java等开放技术 , 使得UNIX操作系统更强大和灵活,比如利用管道(Pipes)传输Shell命令实现复杂的计算任务 。JXTA支持
P2P应用的基本功能来建立一个P2P系统 , 还将努力证实这些可以成为建立更高层功能的基础构造模块 。JXTA架构可以分为三个层面:JXTA核心层、
JXTA业务层和JXTA应用层 。
DWR 【Java开源AJAX框架】
DWR(Direct Web
Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本
DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring
bean),更好浏览器支持,还支持一个可选的commons-logging日记操作.
ZK 【Java开源AJAX框架】
ZK是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich
UI的Web应用 。ZK提供基于XUL的标记语言和事件驱动的组件 , 可以让你像开发桌面应用程序一样简单 。支持EL表达式和脚本语言包括:JavaScript、Ruby和Groovy等 。支持Annotation及数据绑定 。集成Google
Maps、FCKeditor、DOJO以及Timeline 。
JAVA是做什么用的?Java简介
1.4 Java 简介
现代技术的发展,尤其是网络技术 , 给现代企业带来了许多新的机遇和挑战,如改善客户服务、全球化和信息检索等 , 这些在技术上反映为信息的获取、系统管理、系统集成、新技术的开发、Internet、Intranet等等与商业的结合 。而这些要求一个随处可用的开放的结构和在不同的平台之间低成本的信息传递方式 , Java正好满足这些要求 。
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称 。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的Web、Internet计算 。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet 。另一方面,Java技术也不断更新 。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成 。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口 , 可分为基本部分和扩展部分 。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行 。现在Java平台已经嵌入了几乎所有的操作系统 。这样Java程序可以只编译一次,就可以在各种系统中运行 。Java应用编程接口已经从1.1.x版发展到1.2版 。目前常用的Java平台基于Java1.2 。
Java语言是一个支持网络计算的面向对象程序设计语言 。Java语言吸收了Smalltalk语言和C语言的优点,并增加了其它特性 , 如支持并发程序设计、网络通信、和多媒体数据控制等 。主要特性如下:
1)Java语言是简单的 。Java语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用Java 。另一方面,Java丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换 。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧 。
2)Java语言是一个面向对象的 。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承 , 但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements) 。Java语言全面支持动态绑定 , 而C语言只对虚函数使用动态绑定 。总之,Java语言是一个纯的面向对象程序设计语言 。
3)Java语言是分布式的 。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等 。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段 。
4)Java语言是健壮的 。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证 。对指针的丢弃是Java的明智选择 。Java的安全检查机制使得Java更具健壮性 。
5)Java语言是安全的 。Java通常被用在网络环境中 , 为此 , Java提供了一个安全机制以防恶意代码的攻击 。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵 。
6)Java语言是体系结构中立的 。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行 。这种途径适合于异构的网络环境和软件的分发 。
7) Java语言是可移植的 。这种可移植性来源于体系结构中立性 , 另外,Java还严格规定了各个基本数据类型的长度 。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的 , Java的运行环境是用ANSI C实现的 。
8)Java语言是解释型的 。如前所述 , Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行 。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中 。
9)Java是高性能的 。与那些解释型的高级脚本语言相比,Java的确是高性能的 。事实上 , Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C。
10)Java语言是多线程的 。在Java语言中 , 线程是一种特殊的对象 , 它必须由Thread类或其子(孙)类来创建 。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程 。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码 。线程的活动由一组方法来控制 。Java语言支持多个线程的同时执行 , 并提供多线程之间的同步机制(关键字为synchronized) 。
11)Java语言是动态的 。Java语言的设计目标之一是适应于动态变化的环境 。Java程序需要的类能动态地被载入到运行环境 , 也可以通过网络来载入所需要的类 。这也有利于软件的升级 。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查 。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用 。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本 。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式 。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库 。
1) JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口 。
2) EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用 。
3) Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序 。一个Java对象的方法能被远程Java虚拟机调用 。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的 。
4) Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无逢的互操作性 。这使得Java能集成异构的商务信息资源 。
5) JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无逢的连接 。这个接口屏蔽了企业网络所使用的各种命名和目录服务 。
6) JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法 。
7) JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面 。
8) JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控 。
在Java技术中 , 值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言 。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念 。一个JavaBean的主要特征包括属性、方法和事件 。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean , 也可以使用JavaBean构造出新的JavaBean 。JavaBean的优势还在于Java带来的可移植性 。现在,EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构,这个模型支持多层的分布式对象应用 。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围 。
Java开源项目
Spring Framework【Java开源 J2EE框架】
Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架 。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯 。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器 。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的 。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误 。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案 。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型 。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects 。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务 。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架 。【SpringIDE:Eclipse平台下一个辅助开发插件】.
WebWork【Java开源 Web框架】
WebWork 是由OpenSymphony组织开发的 , 致力于组件化和代码重用的拉出式MVC模式J2EE Web框架 。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目 。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来 。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等 。WebWork2建立在Xwork之上,处理HTTP的响应和请求 。WebWork2使用ServletDispatcher将HTTP请求的变成 Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射 。WebWork2支持多视图表示,视图部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等 。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts【Java开源 Web框架】
Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的 。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注 。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间 , 所以说Struts是一个非常不错的应用框架 。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
Hibernate【Java开源 持久层框架】
Hibernate 是一个开放源代码的对象关系映射框架 , 它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任 。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz【Java开源 Job调度】
Quartz 是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用 。Quartz可以用来创建简单或为运行十个,百个 , 甚至是好几万个Jobs这样复杂的日程序表 。Jobs可以做成标准的Java组件或 EJBs 。Quartz的最新版本为Quartz 1.5.0 。
Velocity【Java开源 模板引擎】
Velocity 是一个基于java的模板引擎(template engine) 。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象 。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说 , 页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码 。Velocity将java代码从web页面中分离出来 , 这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案 。Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用 。Velocity也可以为Turbine web开发架构提供模板服务(template service) 。Velocity Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发 。【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS【Java开源 持久层框架】
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言 , 面对的是纯粹的Java对象 , 这一层与通过Hibernate 实现ORM 而言基本一致 , 而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句 。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间 。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义 。
Compiere ERPCRM【Java开源 ERP与CRM系统】
Compiere ERPCRM为全球范围内的中小型企业提供综合型解决方案 , 覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性 。易于安装、易于实施、易于使用 。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了 。
Roller Weblogger【Java开源 Blog博客】
这个weblogging 设计得比较精巧,源代码是很好的学习资料 。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板 , RSS syndication,blogroll管理和提供一个XML-RPC 接口 。
Eclipse【Java开源 开发工具】
Eclipse平台是IBM向开发源码社区捐赠的开发框架 , 它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构 。
XPlanner【Java开源 项目管理】
XPlanner 一个基于Web的XP团队计划和跟踪工具 。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题 。XPlanner特点包括:简单的模型规划 , 虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持 。
HSQLDB【Java开源 DBMS数据库】
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据 。支持ANSI-92 标准 SQL语法 。而且他占的空间很小 。大约只有160K,拥有快速的数据库引擎 。
Liferay【Java开源 Portal门户】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展 , 使用了Web Services来支持一些远程信息的获?。褂?Apahce Lucene实现全文检索功能 。
主要特点:
1、提供单一登陆接口,多认证模式(LDAP或SQL);
2、管理员能通过用户界面轻松管理用户,组,角色;
3、用户能可以根据需要定制个性化的portal layout;
4、能够在主流的J2EE应用服务器上运行,如JBoss Jetty/Tomcat,JOnAS;
5、支持主流的数据库,如PostgreSQL,MySQL;
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
7、支持包括中文在内的多种语言;
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed【Java开源 Portal门户】
Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户.
Jetspeed具有如下的特征:
* 即将成为标准化的Java Portlet API
* 基于模板的布局, 包括JSP和Velocity
* 通过开放的内容同步技术支持远程XML内容交换
* 定制默认的主页
* 使用数据库进行用户认证
* 内存缓存技术, 加快页面的响应
* 通过Rich Site Summary技术, 支持同步内容
* 和Cocoon, WebMacro, Velocity集成.
* Wireless Markup Language (WML) 支持
* 使用XML格式的配置文件注册portlet.
* 完整的Web Application Archive (WAR) 支持
* Web应用程序开发的基础设施
* 可以在本地缓存远程内容
* 与Avantgo同步
* 可移植到所有支持JDK1.2和Servlet 2.2的平台
* 与Turbine模块和服务集成
* 可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务
* 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet
* 使用皮肤技术使得用户可以选择portlet的颜色和显示属性
* 自定义功能是的管理员可以选择portlet以及定义个人页面的布局
* 在数据库中存储PSML
* 通过Jetspeed的安全portlets管理用户, 组,角色和权限
* 基于角色对访问portlet进行控制
JOnAS【Java开源 J2EE服务器】
JOnAS 是一个开放源代码的J2EE实现,在ObjectWeb协会中开发 。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范 。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail。
JFox3.0【Java开源 J2EE服务器】
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始 , JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的 。
JFox 3.0 拥有以下特性:
1. 重新设计的 IoC 微内核 , 融入 OSGi 模块化思想
2. 设计成嵌入式架构,能够和任何 Java Web Server集成部署
3. 支持 EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件
4. 支持 EJB 发布成Web Service
5. 采用 JOTM()提供事务处理,支持两阶段提交(2PC)
6. 采用 XAPool() 提供 XA DataSource,支持智能连接池管理
7. 内置 MVC 框架,实现自动Form Mapping,Validator,Uploading等功能 , 支持JSP/Velocity/Freemarker页面引擎,并支持直接在Action中注入EJB
8. 支持多应用模块部署 , 让中大型应用充分享受模块化开发带来的优势
9. 提供 Manager 管理模块,可以查看和管理各种运行时参数
10. 提供根据 JFox 特色重写的 Petstore 应用模块
aloneloop mark
jaas框架go语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言orm框架、jaas框架go语言的信息别忘了在本站进行查找喔 。

    推荐阅读