在项目中,采用的架构是Springmvc+spring+EJB+Jpa等架构,当然服务器是Jboss,本次Jboss我们采用的是JBossEap6.2,Jboss7的新特性与Jboss4、5的大的改变是:

模块申明式容器

JBOSS EAP不再有lib的概念,一切都是module。无论是系统调用的lib,用户编制的lib,或者应用程序引用到的第三方lib都以模块的方式构建起来,并在使用的地方申明具体使用了哪个模块。这就带来两个好处,

  1. 按官方的说法提供了一种完全的模块化的类加载系统,JBOSS会根据具体的需要来加载或者卸载类,仅仅维护当前需要使用的资源,同时只暴露实际使用的API,也增加了系统的安全性。和以往的JBOSS相比JBOSSEAP6的启动和重启相当迅速,能为我们的开发环境减少更多等待的时间。
  2. 由于指定应用依赖的模块,从而避免了以前容易出现的包冲突的问题。

在看配置过过数据源《Oracle数据源的配置—认识模块的使用》一文后会对模块有一个简单的认识。接着还有《EJB实现—贯穿始终的模块》一文深入介绍模块在JBoss EAP 6.2中的全貌。

JBOSS对JEE6的全面支持

(带一句,正是由于强大的JEE6促使官方与民间技术之争上的高度融合,大家谁也别再争spring or EJB,看Spring和JSR不难发现,它们已经在互相融合)

JEE6给JBOSS EAP增加的几个明显的好处包括

1. 在以上描述的模块化类加载系统避免了包冲突的基础上,JEE6对EJB 项目的严格配置也为包冲突问题提供了很好的解决方案。MANIFAST中必须指明所依赖的模块。《EJB实现—贯穿始终的模块》。

2. JNDI的全面升级,使得Bean的重名问题和客户端stub的定位都得到很好的解决:EJB JNDI名字不再可以随便自定义,EJBJNDI的全名规范:

java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-quali?fied-interface-name>]

其中包含了WAR包名称app-name,JAR包名称module-name,自定义Bean名称bean-name,接口的全地址名称,还有stateful的话需要声明stateful。如: CommonDAO/UTM/Common_DAO!com.hp.ngoss.utm.commondao.CommonDAOBusiness

对EJB3.1 Jboss的客户端有两个专题的详细讲解《让人又爱又恨的EJB3.1 JNDI》和《去掉jboss-ejb-client.properties》。

3. 对Singleton Session bean的支持,每个虚拟机只提供一个实例,单例模式在应用级别的实现。

4. 提供异步方法(Asynchronous  methods),EJB支持Future方式获得交互结果,提高了线程的使用率。见本系列文章:《异步Bean》

5. JPA(hibernate4)的全面支持,简化持久化层的开发工作。见本系列文章《JPA/hibernate

6. 没有接口的Session Bean。不推荐,理由:无论是CORBA还是Web Service都没有说不要Stub的概念。类似的,EJB要能够被调用,需要知道接口,不提供接口的方式必然需要在调用的时候创建接口以及对应的输入输出参数信息,这样一来增加传输的流量开销;当然不是说完全没价值,对于服务提供对象是第三方的客户时,有时会不提供编程接口,这种情况便可以采用此方式,但通常来说服务供认者与客户是友好关系,直接提供接口给客户不违背良心。基于之前说的问题,本人不推荐使用这种方式。

7. 在动态Web项目中实现Session Bean。不太推荐使用,这个使得JEE的4层架构中的Web层与Business层的界线混淆,出于解耦的目的,不推荐使用。可能的使用场景,JBOSS自己提供的EJB只给自己的web层使用,没有分布式的场景。

8. Managed domains: 管理域组织各物理机上的虚拟服务为服务组,使得所有服务器在一个地方统一配置、统一部署。配置为同一服务组内的机器可以自动扩展,也可以在一台主机上根据不同的端口绑定来设置多个实例。Managed Domain要区别与Cluster,Cluster的主要功能是负载均衡、容灾,而Managed domain的目的主要在于统一管理。本系列八《Managed Domains》详细的介绍了一个管理域的实现,并讲解了管理域的统一配置、统一部署的特性。本系列九《Cluster负载均衡集群》介绍了JBOSS
EAP 6(JbossAS7)的集群配置方式。

最后,也是对开源产品抱怨最多的问题(乱+繁)的解决方案:EAP版有技术支持,对应用服务器的配置和相关的技术问题实在是搞不定的时候,可以找Redhat技术人员来帮忙(外网的支持)。

除以上的介绍之外还有很多别的新功能如:

对容器的多种管理方式:web页面,cli客户端,和配置文件方式对容器进行管理。比如说网上就会有两种JBOSSEAP数据源的配置方式,一种是cli端+web页面的配置,一种直接在配置文件里面配,其实效果是一样的,只不过配置文件配置的方式不会留下任何痕迹,不方便追溯。不过个人感觉在实际应用中,特别是自动部署中,还是以配置文件的方式来管理容器比较实用。

看到JBOSS EAP带来的各种好处的同时,也希望JBOSS EAP能即像WebLogic等厂商经营的应用服务器一样,提供更多专业的为开发和实施带来便利的能力(如自动升级应用)。同时也能保持开源社区的包容性和技术的多样性,更开放的尝试各种新技术,新架构,新思想。

总结

新的事物不可怕,怕的是内心的那种恐惧,新的事物、新的架构、新的思想--站在巨人肩膀之上,成长迅速!

JBOSS EAP 6 系列一 新特性的更多相关文章

  1. JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置

    公司项目中遇到并要解决的问题 1:原则上除了自己写的代码之外,公共的jar不应该都在打包的时候打包到ear里面,这样的话包太大,也不符合的分层的逻辑,在jboss容器内部,每个ear的包重复jar都会 ...

  2. JBOSS EAP 6 系列四 EJB实现——调用(贯穿始终的模块)

    本文主要介绍在JBOSS EAP 6.2(或者JBOSS AS7)中模块是如何贯穿EJB实现的始终.延续上一博文<认识模块的使用>的话题继续聊JBOSS做为模块申明式容器的这一特性在EJB ...

  3. JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用

    本文介绍JBOSS EAP 6.2中Oracle数据源的配置方式.结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性. 模块申明式容器:JBOSS EAP不再有lib的 ...

  4. JBOSS EAP 6 系列五 Managed domains 管理域最主要的功能是“统一部署,统一配置”

    摘要 本文首先介绍Managed Domain的概念,管理域最主要的功能是"统一部署,统一配置".接下来通过一个实例在"统一配置"部分实现一个双机配置起来的域, ...

  5. SCCM 2012系列之新特性

    SCCM 2012站点类型: 站点 作用 相对于SCCM 2007 的变化 中心管理站点The central administration site(CAS) 中心管理站点协调内部站点的数据复制.使 ...

  6. WebLogic Server 12c相对JBoss EAP 6的优势

    原文来自:https://blogs.oracle.com/middlewareplace/entry/why_should_you_choose_oracle 1.多数据中心部署和集群 WebLog ...

  7. 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  8. Atitit 发帖机系列(8)  词法分析器v5 版本新特性说明)

    Atitit 发帖机系列(8)  词法分析器v5 版本新特性说明) v5  增加对sql单引号的内部支持.可以作为string 结构调整,使用递归法重构循环发..放弃循环发. V4 java dsl词 ...

  9. 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片

    [源码下载] 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片 作者:webabcd 介绍重新想象 Win ...

随机推荐

  1. Spring官方文档翻译(转)

    http://blog.csdn.net/tangtong1/article/details/51326887 http://blog.csdn.net/tangtong1/article/detai ...

  2. hihocoder 1419 重复旋律4

    描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成的数列.小Hi在练习过很多曲子以后发现很多作品中的旋律有重复的部分. 我们把一段旋律称为(k,l)-重复的, ...

  3. [SHOI2008]堵塞的交通

    Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可 以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有 ...

  4. [HNOI2008]明明的烦恼

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在 任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 ...

  5. hdu 5479(括号问题)

    题意:类似"()","(())","()()" 是匹配的, 而 "((", ")(", " ...

  6. Mysql 基于GTID的主从复制(实操)

    实现环境: Master 主:192.168.0.102 (Mysql 5.6.36) Slave  从 :192.168.0.103 (Mysql 5.6.36) 步骤1.在主DB服务器上建立复制账 ...

  7. Python作业之三次登陆锁定用户

    作业之三次登陆锁定用户 作业要求如下: 1. 输入用户名和密码 2. 认证成功提示欢迎信息 3. 认证失败三次锁定用户 具体代码如下: 方法1: import os#导入os模块 if os.path ...

  8. EffectiveTensorflow:Tensorflow 教程和最佳实践

    Tensorflow和其他数字计算库(如numpy)之间最明显的区别在于Tensorflow中的操作是符号. 这是一个强大的概念,允许Tensorflow进行所有类型的事情(例如自动区分),这些命令式 ...

  9. Nginx配置二级目录/路径 映射不同的反向代理和规避IP+端口访问

       当配置Nginx来映射不同的服务器 可以通过二级路径来反向代理 来解决一个外网端口实现多个服务访问. 配置如下: server { listen ; server_name demo.domai ...

  10. NPOI给单元格加范围边框

    HSSFWorkbook workbook2 = new HSSFWorkbook();        //XSSFWorkbook workbook2 = new XSSFWorkbook();// ...