在项目中,采用的架构是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. [SDOI 2017]数字表格

    Description 题库链接 记 \(f_i\) 为 \(fibonacci\) 数列的第 \(i\) 项. 求 \[\prod_{i=1}^n\prod_{j=1}^mf_{gcd(i,j)}\ ...

  2. [BZOJ 2144]跳跳棋

    Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.我们要通过最少的跳动把他 ...

  3. [HNOI 2005]狡猾的商人

    Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), .当 ...

  4. [HNOI2012]永无乡

    题目描述 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达 ...

  5. bzoj 1558: [JSOI2009]等差数列

    Description Solution 把原数组变为差分数组,然后剩下的就十分显然了 区间查询用线段树维护 修改操作就是区间加法和两个单点修改 一个等差数列实际上就是 开头一个数字+数值相等的一段 ...

  6. Go学习——go+channel实战(转)

    转载:http://studygolang.com/articles/2423 背景 在最近开发的项目中,后端需要编写许多提供HTTP接口的API,另外技术选型相对宽松,因此选择Golang + Be ...

  7. 【Python3.6+Django2.0+Xadmin2.0系列教程之三(入门篇-下)】学生信息管理系统

    上一篇我们已经初步的构建起了一个学生管理系统的模型,现在接着来继续完善它吧. 1.上传图片/文件等资源 有时候需要添加一些附件,例如,新生刚入学,大家相互之间还不熟悉,希望能通过照片来加深印象,并且方 ...

  8. TensorFlow-Bitcoin-Robot:Tensorflow 比特币交易机器人

    简介 一个比特币交易机器人基于 Tensorflow LSTM 模型,仅供娱乐. A Bitcoin trade robot based on Tensorflow LSTM model.Just f ...

  9. 图像融合之拉普拉斯融合(laplacian blending)

    一.拉普拉斯融合基本步骤 1. 两幅图像L,R,以及二值掩模mask,给定金字塔层数level. 2. 分别根据L,R构建其对应的拉普拉斯残差金字塔(层数为level),并保留高斯金字塔下采样最顶端的 ...

  10. Timestamp转Calendar

    Timestamp scheduleTime = r.getTimestamp("time_recv"); Calendar calendarScheduleTime = Cale ...