EJB3 阶段总结+一个EJB3案例 (1)
经过一段时时间的学习,对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案例 (1)的更多相关文章
- EJB3 阶段总结+一个EJB3案例 (2)
这篇博文接着上一篇博文的EJB案例. 在上一篇博文中,将程序的架构基本给描述出来了,EJB模块分为5层. 1)DB层,即数据库层 在则一部分,我使用的数据库为mysql.在EJB程序中,访问数据库是通 ...
- 第一个struts案例及分析
软件中的框架,是一种半成品: 我们项目开发需要在框架的基础上进行!因为框架已经实现了一些功能,这样就可以提高开发效率! Struts2 = struts1 + xwork (struts是基于MV ...
- 用一个开发案例详解Oracle临时表
用一个开发案例详解Oracle临时表 2016-11-14 bisal ITPUB  一.开发需求 最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段 ...
- SAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例
今天这篇迟到的文章,来自我的同事Aviva. 去年SAP C/4HANA发布之后,SAP的从业者们可能或多或少都读过一些来自SAP官方渠道,比如微信公众号"SAP天天事"发布的一些 ...
- Python:通过一个小案例深入理解IO多路复用
通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import time start = time.time() ...
- Lucene3.6.2包介绍,第一个Lucene案例介绍,查看索引信息的工具lukeall介绍,Luke查看的索引库内容,索引查找过程
2.Lucene3.6.2包介绍,第一个Lucene案例介绍,查看索引信息的工具lukeall介绍,Luke查看的索引库内容,索引查找过程 2014-12-07 23:39 2623人阅读 评论(0) ...
- java线程基础巩固---分析Thread的join方法详细介绍,结合一个典型案例
关于Thread中的join方法貌似在实际多线程编程当中没怎么用过,在当初学j2se的时候倒时去学习过它的用法,不过现在早已经忘得差不多啦,所以对它再复习复习下. 首先先观察下JDK对它的介绍: 其实 ...
- 编程中易犯错误汇总:一个综合案例.md
# 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然 ...
- 零基础学习java------35---------删除一个商品案例,删除多个商品,编辑(修改商品信息),校验用户名是否已经注册(ajax)
一. 删除一个商品案例 将要操作的表格 思路图 前端代码 <%@ page language="java" contentType="text/html; cha ...
随机推荐
- C语言之接收方向键指令让屏幕上的输出能移动
首先,需要了解一下控制台坐标 #include <stdio.h> #include <stdlib.h> #include <conio.h> main() { ...
- vi 基本使用命令
说明:以下的例子中 xxx 表示在命令模式下输入 xxx 并回车以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车小括号中的命令表示相关命令在编辑模式或可视模式下输入的命令会另外注明 1 查 ...
- 山东省第七届ACM竞赛 C题 Proxy (Dijkstra算法,单源路径最短问题)
题意:给定0-n+1个点,和m条边,让你找到一条从0到n+1的最短路,输出与0相连的结点... 析:很明显么,是Dijkstra算法,不过特殊的是要输出与0相连的边,所以我们倒着搜,也是从n+1找到0 ...
- Apache Struts 2 Documentation Big Picture
http://struts.apache.org/docs/big-picture.html 1. HttpServletRequest 穿越各个过滤器到达FilterDispatcher(这个已经不 ...
- x11vnc配置--ubuntu14.04
x11vnc是连接到真实的X会话,相比vnc4server和tightvncserver自己创建不同分辨率的xserver来说,画面延时和显示效果应该要好一些.两种服务都试过,个人感觉x11vnc要好 ...
- MySQL性能调优与架构设计——第12章 可扩展设计的基本原则
第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体 ...
- ACM STEPS——Chapter Two——Section One
数学题小关,做得很悲剧,有几道题要查数学书... 记下几道有价值的题吧 The area(hdoj 1071) http://acm.hdu.edu.cn/showproblem.php?pid=10 ...
- 取得 APP 自己的版本号 (跨 4 个平台)
http://www.cnblogs.com/onechen/p/3627942.html XE7 源码下载:[原创]取得APP自己的版本号(狠跨4个平台)XE7.zip XE6 源码下载:[原创]取 ...
- Python学习-30.Python中的元组(tuple)
元组使用()定义,元组一旦定义就无法修改. 元组的索引方式同列表,也是使用[]. 元组也可以进行切片操作,使用方式同列表一样. 可以说,一个没法修改的列表就是元组. 在没有修改操作的情况下,应尽可能使 ...
- [ACM_暴力] 最多交换k个数的顺序,求a[i]的最大连续和
/* http://codeforces.com/contest/426/problem/C 最多交换k个数的顺序,求a[i]的最大连续和 爆解 思路:Lets backtrack interval ...