带你走进EJB--它都有哪些Bean
通过前面一系列EJB的博客,我们已经对EJB有了一个宏观的了解.为够更好的在企业项目中使用EJB,我们很有必要对EJB的一些基本内容进行深入,这次我们主要进行的主题是Enterprise Java Bean 中都有哪些Bean?
在EJB中主要有以下三种类型的Bean,分别是
- Session Beans
- Message-Driven Beans
- Entities Beans
每种类型的Bean都能够提供特定类型的服务.这三种分类能够帮助我们更好的去理解并组织一个应用程序.例如,Bean的这些类型能够让我们基于分层的架构来开发应用.
Session Beans 和Message-Driven Beans(MDBs)用来创建业务逻辑,它们是由EJB容器来管理生命周期.Entities Beans是数据持久化的模型.跟容器一样,Entities Beans是通过Persistence provider(持久性提供者)来进行管理的.
接下来我们通过一张图来总结上面所阐述的内容.同时也是对EJB类型的一个概括.
这里需要注意的是Java Persistence API 跟EJB3 的容器是完全分开的.
SessionBeans
一个会话Bean实例是客户端调用一个特定业务操作的结果,比如检查客户的访问历史.共有两种类型的Session Beans,有状态的会话Bean和无状态的会话Bean.
有状态的SessionBean只为一个用户来服务,并且能够自动记录用户的状态同时你也不需要去写额外的代码.一个简单的例子就是你在淘宝购物所用的购物车的过程.
无状态的SessionBean是不会保存的信息的和状态,无状态的SessionBean是可以重用的,它不会被立刻销毁.一个简单的例子就是你在淘宝购物所用到的查询购物记录的过程.
Session Beans可以通过Java的RMI来进行本地或者远程调用.无状态的会话Bean还可以发布成Web Service.
有状态的Beans和无状态的Beans有什么区别呢?
这两种Session Bean都可以将系统逻辑放在方法之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此一个使用者会有自己的一个实例。
Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB 容器并不会寻找特定的 Stateless Session Bean 的实体来执行这个method。 换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean的实例在执行。
从内存方面来看,Stateful Session Bean 与 StatelessSession Bean 比较,Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。
Message-DrivenBeans
Message-Driven Beans (MDBs)跟Session Bean一样,都是用来处理业务逻辑.但是MDBs非常不同于Session Beans是客户端不会直接调用MDB的方法.MDB会被发到消息服务的消息所触发,它能够在不同的系统组件之间进行异步消息传输.有很多的消息服务例如:IBMWebSphere MQ, SonicMQ, OracleAdvanced Queueing, and TIBCO.MDB的一个简单例子是在淘宝中你请求查询相关宝贝的物流信息.
Entities
Entities是能够持久化到数据库的那些java对象.EJB3 其中一个新特征就是能够处理持久化,关于什么是持久化可以参考我的博客:Hibernate 之 Persistence 而EJB的持久化是通过JPA来进行管理的.它能够自动的将Java对象通过ORM技术持久化.
至此,我们已经对EJB各个组成部分有了深一步的了解,知道在EJB中都有哪些Bean和他们基本的功能.
带你走进EJB--它都有哪些Bean的更多相关文章
- 小丁带你走进git的世界三-撤销修改
一.撤销指令 git checkout还原工作区的功能 git reset 还原暂存区的功能 git clean 还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...
- 小丁带你走进git的世界二-工作区暂存区分支
小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git init git clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...
- 老司机带你走进Core Animation
为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...
- 带你走进rsync的世界
导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录.rsync共有3种使用方 ...
- 带你走进EJB--MDB
在之前的文章中我们介绍了带你走进EJB--JMS 和 带你走进EJB--JMS编程模型 对JMS有了初步的了解, 作为EJB系列的文章我们会继续对EJB相关的内容做进一步深的学习和了解.而此次需要进行 ...
- 小丁带你走进git的世界三-撤销修改(转)
一.撤销指令 git checkout还原工作区的功能 git reset 还原暂存区的功能 git clean 还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...
- Miox带你走进动态路由的世界——51信用卡前端团队
写在前面: 有的时候再做大型项目的时候,确实会被复杂的路由逻辑所烦恼,会经常遇到权限问题,路由跳转回退逻辑问题.这几天在网上看到了51信用卡团队开源了一个Miox,可以有效的解决这些痛点,于是乎我就做 ...
- 带你走进CSS定位详解
学习CSS相关知识,定位是其中的重点,也是难点之一,如果不了解css定位有时候都不知道怎么用,下面整理了一下关于定位属性的具体理解和应用方案. 一:定位 定位属性列表 position top bot ...
- 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...
- 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)
大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...
随机推荐
- GTK, GTK+, Qt, KDE, GNOME, Unity的区别与联系
GTK,GTK+, Qt是图形界面开发库(GUI Toolkit),用户可以使用这些开发库编写GUI应用,其中GTK+是GTK的升级版. KDE,GNOME,Unity是linux下的桌面环境(Des ...
- Dijkstra算法---HDU 2544 水题(模板)
/* 对于只会弗洛伊德的我,迪杰斯特拉有点不是很理解,后来发现这主要用于单源最短路,稍稍明白了点,不过还是很菜,这里只是用了邻接矩阵 套模板,对于邻接表暂时还,,,没做题,后续再更新.现将这题贴上,应 ...
- 使用apache的ab命令进行压测
1. 背景:互联网发达的今天,大大小小的网站如雨后春笋,不断出现,但是想要做出一个网站很简单,但是想要做好一个网站,非常非常难,首先:网站做好之后的功能怎么样这都是次要的,主要的是你的网站能承受怎么样 ...
- Linux信号量同步共享内存实验.
Linux信号量同步共享内存实验. Linux信号量同步共享内存实验. 简述 程序流程 信号量和共享内存的系统函数 信号量系统函数及接口 共享内存系统函数及接口 写程序 读程序 简述 本文主要内容是自 ...
- Java反射机制demo(七)—反射机制与工厂模式
Java反射机制demo(七)—反射机制与工厂模式 工厂模式 简介 工厂模式是最常用的实例化对象模式. 工厂模式的主要作用就是使用工厂方法代替new操作. 为什么要使用工厂模式?直接new不好吗? 直 ...
- CSS基础-DAY2
CSS属性操作-文本 文本颜色 <head> <style> p{ /*color:#8B5742 ;色码表*/ color: RGBA(255,0,0,0.5); /*调色, ...
- 为什么全部width:100%浏览器边缘存在留白?
一般浏览器都给body加了外边距,margin:0应该能解决你所遇到的问题.但你很可能又会遇到其他奇怪的现象,比如说p的行高,在不同浏览器上显示不一致,最根本的解决方案还是重置浏览器默认样式. 可以使 ...
- LOJ P3959 宝藏 状压dp noip
https://www.luogu.org/problemnew/show/P3959 考场上我怎么想不出来这么写的,状压白学了. 直接按层次存因为如果某个点在前面存过了则肯定结果更优所以不用在意各点 ...
- BZOJ 3091: 城市旅行 lct 期望 splay
https://www.lydsy.com/JudgeOnline/problem.php?id=3091 https://blog.csdn.net/popoqqq/article/details/ ...
- 【BFS】【最小生成树】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem G. We Need More Managers!
题意:给你n个点,点带权,任意两点之间的边权是它们的点权的异或值中“1”的个数,问你该图的最小生成树. 看似是个完全图,实际上有很多边是废的.类似……卡诺图的思想?从读入的点出发BFS,每次只到改变它 ...