经过一段时时间的学习,对EJB3的相关知识和jboss8的配置有了大概的了解。

网上对EJB的评论很多,基本都是负面的,都表示EJB太过于沉重,不容易维护。但通过这段时间的学习,私下认为,EJB3在某些应用场景下还是有许多的可取之处的。

1)EJB3摒弃了EJB2中许多不合理的设计,引入了注解,通过注解的方式来注入对象(@EJB),越来越向无侵入式的架构发展。

2)EJB3使用了JPA的方式替代原有的持久化框架。JPA是一种通过注解的方式和数据库建立连接的框架,与hibernate4相似

3)在分布式应用中,EJB3是一种很好的选择。

4)拥有许多服务商的支持,安全性是肯定的。

在这一段EJB的学习过程中,主要学习了一下方面:

1)Session Bean,包括有状态的SessionBean和无状态的SessionBean,以及两者的区别

2)message Driver Bean(MDB),包括Queue和Topic两种,其中Queue在工作中应用的比较多,在学习的过程中通过对jboss5和jboss8的试验,了解了jboss两个版本的区别

3)Entity Bean,即目前的JPA,是EJb和底层数据库交互的框架,主要学习了JPA的注解,如何描述关系型数据库中表与表之间的关系

4)事物,实体管理器。在这里将这两种都分为容器管理的和Bean管理的两种

5)Remote和local两中访问方式

6)EJB和webmethode整合,通过调用Webmethode来访问EJB程序,实现分布式交互

以上就是我这段时间学习EJB的相关知识。当然EJB的知识不仅仅包括这么多,还有许多的知识是需要在工作中去学习的,而不仅仅是通过几个demo来学习

学完这些后,我做了一个比较小的EJB程序,作为这一段时间的总结,话不多说,基本架构图上一个先。

从上图中可以看出,程序分为两个部分,A部分是一个EJB模块,在该模块中大致可分为4部分(Dao和EntityBean可看作一层),在最外层使用webService将程序暴露出去,而不是使用EJB提供的Remote然后用JNDI调用方法。B模块为服务调用模块,在该部分中使用SoapUI来替代,通过SoapUI来调用WebService接口。

下一篇:EJB3 阶段总结+一个EJB3案例 (2)

EJB3 阶段总结+一个EJB3案例 (1)的更多相关文章

  1. EJB3 阶段总结+一个EJB3案例 (2)

    这篇博文接着上一篇博文的EJB案例. 在上一篇博文中,将程序的架构基本给描述出来了,EJB模块分为5层. 1)DB层,即数据库层 在则一部分,我使用的数据库为mysql.在EJB程序中,访问数据库是通 ...

  2. 第一个struts案例及分析

    软件中的框架,是一种半成品: 我们项目开发需要在框架的基础上进行!因为框架已经实现了一些功能,这样就可以提高开发效率! Struts2 = struts1  +  xwork (struts是基于MV ...

  3. ​ 用一个开发案例详解Oracle临时表

    ​ 用一个开发案例详解Oracle临时表 2016-11-14 bisal ITPUB  一.开发需求  最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段 ...

  4. SAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例

    今天这篇迟到的文章,来自我的同事Aviva. 去年SAP C/4HANA发布之后,SAP的从业者们可能或多或少都读过一些来自SAP官方渠道,比如微信公众号"SAP天天事"发布的一些 ...

  5. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import time start = time.time() ...

  6. Lucene3.6.2包介绍,第一个Lucene案例介绍,查看索引信息的工具lukeall介绍,Luke查看的索引库内容,索引查找过程

    2.Lucene3.6.2包介绍,第一个Lucene案例介绍,查看索引信息的工具lukeall介绍,Luke查看的索引库内容,索引查找过程 2014-12-07 23:39 2623人阅读 评论(0) ...

  7. java线程基础巩固---分析Thread的join方法详细介绍,结合一个典型案例

    关于Thread中的join方法貌似在实际多线程编程当中没怎么用过,在当初学j2se的时候倒时去学习过它的用法,不过现在早已经忘得差不多啦,所以对它再复习复习下. 首先先观察下JDK对它的介绍: 其实 ...

  8. 编程中易犯错误汇总:一个综合案例.md

    # 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然 ...

  9. 零基础学习java------35---------删除一个商品案例,删除多个商品,编辑(修改商品信息),校验用户名是否已经注册(ajax)

    一. 删除一个商品案例 将要操作的表格 思路图  前端代码 <%@ page language="java" contentType="text/html; cha ...

随机推荐

  1. head first 设计模式文摘

    1 欢迎来到设计模式世界:设计模式入门 2 让你的对象知悉现况:观察者模式 3 装饰对象:装饰者模式 4 工厂模式:烘烤OO的精华 5 单件模式:独一无二的对象 6 命令模式:封装调用 7 适配器模式 ...

  2. 通过电机编码器AB相输出确定电机转向

    AB相输出相差90度,即当A相"正跳变"时如果B相是高电平那么是"正转",反之是"反转" 图片: 正转 反转 #include <Ti ...

  3. Spring MVC之@RequestMapping 传递数组

    1.前台: var param = {titles:['col1','col2','col3']}; $.ajax({url:url, type:"post", data:para ...

  4. Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource Caused by: org.hibernate.DuplicateMappingException: duplicate import: Person refers to both cn.itcast.

    此错误是说有两个相同的名字的配置文件,所以不知道查找哪个.解决方法就是把不需要的那个配置文件删除. 删除mapping中不需要的那个xml文件即可

  5. 下拉菜单  - - css

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. 为UITextView添加通知..来检测UITextView内容的改变

      self.mTextView =[[UITextView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH - 100, 28)];     se ...

  7. OpenGL ES 光照模型之——漫反射光(RenderMonkey测试,地球日出效果)

    概述及目录(版权所有,请勿转载 http://www.cnblogs.com/feng-sc) 本文在上一篇(OpenGL ES 光照模型之——环境光照(RenderMonkey测试))环境光基础上, ...

  8. noip第8课作业

    1.     计算书费 [问题描述]下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6元/本 C++程序设计教程 78 元/本 人工智能 35  ...

  9. 项目笔记---事半功倍之StyleCop(一)

    前言 曾几何时,你是否在看别人代码的时候总是在抱怨代码没有注释,命名不规范,代码风格不统一,代码可读性差?是否有一个适合团队开发规范的检查工具? 答案就是大名鼎鼎的StyleCop代码检查插件,有了这 ...

  10. AbpZero的Swagger汉化之旅

    做汉化主要是为了出一份前后端都能看得懂的在线文档,废话不多说,我们开始准备, 我们要在启动项目的Startup.cs中重定向一下swagger的读取方式 1.在这个类下面,新增一个方法: public ...