传智播客--EJB

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

我们开始学习EJB喽.一提到EJB大家可能就会想到,零配置.在EJB2的时候,配置很繁琐.在EJB3时,使用了POJO加Annotation.配 置和使用非常方便.大大提高了我们在开发中的速度.今天我们就来了解一下EJB3.

EJB类型:
Session bean
用于特定业务逻辑 由客户端调用,Session名称意味着在整个工作单元期间都可用,在服务器停止后销毁它可为任何应用逻辑功能进行建模.
Session bean有这样两种状态:Stateful,  无需手动编码,在客户端调用时可自动保存bean状态信息.Stateless,  可通过java rmi进行远程/本地调用,还可暴露成ws
Message-driven bean
同Session Bean相似,也用来处理业务逻辑,不同之处在于客户端从不会直接调用消息驱动Bean.他是由发送到服务器的消息触发的,可用于在系统组件间进行异步消 息的发送.  典型的消息服务器有:IBM WebSphere MQ, SonicMQ, Oracle Advanced Queueing,and TIBCO
Entity和JPA
持久化是自动将java对象中的数据存储到DB中的能力,EJB3中持久化由JPA管理.JPA使用 ORM技术自动持久化Java对象.
EJB3中,持久化供应商本质上就是支持JPA规范的ORM框架.

每种类型的bean用于特 定目的并可使用EJB服务的一个子集.Bean类型的真正目的是防止服务的交叉装配导致的超载.Session Bean和消息驱动Bean用户构建业务
逻 辑,他们驻留在容器中,由容器来进行管理.实体Bean用于对Model进行建模.持久化供应商是可插拔的.

我们前两天学习的JPA同 EJB3容器是完全分离的.业务逻辑的处理是由两个组件完成:session bean和消息驱动bean.这两个组件都是容器负责管理,持久化对象被称为实体,他由持久化供应商通过实体管理器接口进行管理.

EntityManager
实 体不会持久化自身,需要实体管理器来完成持久化工作,EM会读取映射的元数据信息来执行持久化操作.

EJB3,要运行在EJB容器中,大 多的应用服务器都是支持的.如:JBOSS,WEBLOGIC.但这里要注意,我们前一阵一直使用的Tomcat是不支持的,不能在这里运行EBJ.因为 tomcat只是web容器,没有EJB容器.EJB的组件必须要部署到EJB容器中上才能使用.

EJB部署/运行:
①EJB 需要打成jar包部署到AS服务器上运行.Jar 可通过IDE的向导完成打包工作.
② 安装JBoss AS(不要含有中文和空格). 配置环境变量(JBOSS_HOME).在Eclipse下配置JBoss服务器以及启动、停止. JBoss AS服务器默认端口8080,端口配置在
  ${jboss_home}/server/default/deploy/jboss-web.deplo-yer/server.xml

这 个和我们前面接触到的Tomcat中的web应用程序的部署是不一样的,这个是热部署:不需要重启服务器就可部署(观察控制台内容).通过jmx查看部署 结果.

JNDI:java naming directory interface

SLSB:
客户端并不关心SLSB的内部状态,SLSB 没有必要维护在两次调用中维护实例变量的值.
SFSB:
确保客户端设置bean的内部状态以及即使任意次方法调用数量还是保持不变.容器 保证这一目的要做两件幕后的事情.
首先,容器要保证客户端可以到达该bean.
其次,容器在你不需要手写代码的情况下维护bean的实例 变量.

EJB类编 程规则
至少有一个业务接口
必须是具体类.不能是final或抽象的.
 必须有空构造
 可以是其它 sessionbean或pojo的子类
    @Stateless
    public CustomerManagerBean extends BaseManagerBean
                        implements CustomerManager {
       ...
    }
生命周期回调方法可以定义在bean类中或超类中.注解继承 需要受到限制,超类中@Stateless or @Stateful注解在部署时将要被忽略.但定义的任何回调方法和资源注入都要被继承.业务方法名不能以ejb开头,可能会干扰ejb底层处理.必须定 义所有的方法为 public的,但不能是final或static的.在远程业务接口中的定义的参数和返回值类型必须实现java串行化接口.
会 话状态和Session bean类型
如果bean要维护会话状态,记住上次交流的结果,这是有状态的会话bean.这意味着bean会从方法调 用中存储数据到实例变量,并使用缓存的数据来处理下一次方法调用.
SLSB不维护任何状态,SFSB趋向于对多个步骤的工作流进行建模,SLSB 则趋向与对常规目的进行建模. SFSB典型案例就是购物车.

Bean的生命周期回调
session bean有生命周期,意味着会有一系列状态的转变.客户端和bean都不负责bean实例何时创建,何时销毁,何时进行优化.这些行为都由容器进行管理.
bean 初始化时,会发生如下过程:
  1.容器调用newInstance方法.
  2.如果bean使用DI,所有依赖的资源、bean和环境组件都要注入进来.

配置数据源在JBossAS中:
  1.xml文件名:{文件名}-ds.xml
  2.放到${jboss_home}/server/${your server}/ deploy/下即可.
注:各数据库的参考文档在${jboss_home}/docs/jca/下.  数据源配置文件部署完之后,必须重启JBoss服务器.  启动后,在浏览器中可查看到数据源的JNDI名称.

客户端调用ejb有三种方式:
1.  同一jvm的本地接口调用
2. 通过rmi的远程接口调用
3.SLSB可做为web service调用

SLSB生命周期回调方法
1. 创建bean实例
2.DI资源(数据源)
3.放入到池中
4.从池中取出空闲的bean供客户端调用.
5.执行请求业务
6. 业务完成后,放置bean到就绪的池中.
7.需要的话,销毁bean.
SLSB通过少量的实例来处理实际的并发的访问.理论上可以有多个 @postContruct和@preDestroy方法.但很少这样做.生命周期回调方法不能有参数,而且不能抛出受检查的异常(运行时异常的子类). 这些方法主要用于在特定时刻定位或释放资源.

SFSB的性能考虑
1.高效使用SFSB
SFSB无疑提供了健壮的业务逻辑处理功能, 大多数EJB容器都提供了强大的集群功能,即使一个服务器崩溃后,仍可以有其它服务器来维护客户端状态,不会中断业务处理,要实现这一功能必须要维护会话 的状态,即SFSB.
2.正确选择session数据
不要在session当中存放大量数据,应该只存放重要的关键数据,比如我们只缓存 一个id值在session中.
3.钝化/删除bean

传智播客SSH和EJB技术深度解析 Struts2是一个基于MVC设计模式的Web应用框架,它是Struts框架的继任者,采用了更加灵活的设计理念。Struts2的主要作用是简化Web层的开发,通过将视图、控制和模型三个核心组件分离开来,使得开发者可以专注于业务逻辑的实现。Struts2框架的底层实现了拦截器模式,提供了一个灵活的拦截器栈,开发者可以根据需求配置和扩展。构建企业级应用的过程涉及多个阶段,从需求分析到最终上线,以下是实现过程中的一些关键步骤:需求分析和设计:首先,与利益相关者沟通,明确应用需求,进行系统设计。 阅读详情

相关推荐

传智播客_EJB3.0视频教程网盘下载

传智播客_EJB3.0视频教程网盘下载,本教程仅供学习之用,请勿用于商用,一切后果自负。

EJB3.0笔记(传智播客_EJB3.0视频教程)

1.EJB3与spring spring与ejb功能相似,如果应用不需要分布式能力,确实e'mi'you

公子的专栏 2036

传智播客EJB教程用部署工具

传智播客EJB3.0教程里用到的用于部署EJB的XML文件。

传智播客——EJB

今天我们来一起学习EJBEJB是一个用于分布式业务应用的标准服务端组件模型,EJB较Spring而言,它更适合于分布式的场合,实现最大程度的业务代码重用,EJB是一个重量级的开发框架。我们接下来就开始学习EJB······1.       EJB中有三种bean:①会话bean ②实体bean ③消息驱动bean2.       会话bean分为无状态会话bean和有状态会话bean

302

传智播客ejb学习, EJB和Spring的比较及EJB3.0的运行环境

       今天开始学习ejb,黎活明老师讲的,黎老师是国内ejb方面的权威,《EJB3.0入门经典》就是黎老师写的,EJB领域销量很好的一本书。黎老师讲了ejb的优点,或者说它的侧重点,它和Spring提供的服务很多都是相同的,它主要就是提供分布式服务,Spring是做不到的。分离出了业务层,软件功能改变,只需修改业务层,为后期软件维护提供了方便。业务功能共享。软件实现了最大程度的组件方面的重

TuiRoger的专栏 1762

传智播客 EJB3 学习笔记1

1 安装jboss (略)2 创建一个既能本地调用 又可以远程调用的 bean 引入jboss_home/client/下面的jarpublic interface HelloWorld {    }public interface HelloWorldLocal extends HelloWorld {} @Stateless                     

samttsch的专栏 683

传智播客黎老师EJB视频随笔上

 =================这都是我本人看视频写的,不需要你们能看懂=====================  EJB   ===============附录一:EJB3基本概念及发展前景a.ejb技术发展快10年了b.什么是EJBEnterprice JavaBeans是一个用于分布式业务应用的标准服务端组件模型。采用EnterpriceJavaBe

JeffeHero的专栏 649

传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean

<br />今天继续学习ejb3.0,黎老师提到,ejb发展已经有十年了,现在国内ejb还不是很流行,学习它可能对刚开始找工作的人没什么用,不过可以了解他的原理,学习他的编程思想,更好的理解前面所学的内容。开拓知识面,站在一个更高的台阶去思考问题,ejb的发展前景会越来越好,他所占的市场份额是由分布式的应用在软件开发中的使用所决定的。黎老师主要讲了在jboss服务器上使用ejb3.0。<br />    EJB中的三种bean<br />  1.会话bean(session bean)<br />   负责

699

weblogic8/9/10的部署于应用

weblogic8i、weblogic9.2、weblogic10.3的安装步骤及部署及应用。很适合刚学习weblogic的同事。

传智播客ejb3.0教学ppt

传智播客黎活明老师的ejb3.0教学ppt

weblogic自学全套教程

近期学习weblogic 搜集到一些资料希望能帮助到同学们

ejb资料

NULL 博文链接:https://huanglei4.iteye.com/blog/1062717

传智播客 EJB3 学习笔记2

1数据源: 详细定义    MSSQLDS    jdbc:sqlserver://localhost:1433;DatabaseName=EJB    com.microsoft.sqlserver.jdbc.SQLServerDriver    sa    123456 2 配置实体bean@SuppressWarnings("serial")@Entity@Table

samttsch的专栏 478

java ejb3.0_传智播客ejb学习, EJB和Spring的比较及EJB3.0的运行环境

今天开始学习ejb,黎活明老师讲的,黎老师是国内ejb方面的权威,《EJB3.0入门经典》就是黎老师写的,EJB领域销量很好的一本书。黎老师讲了ejb的优点,或者说它的侧重点,它和Spring提供的服务很多都是相同的,它主要就是提供分布式服务,Spring是做不到的。分离出了业务层,软件功能改变,只需修改业务层,为后期软件维护提供了方便。业务功能共享。软件实现了最大程度的组件方面的重用。它前景还是...

weixin_29722785的博客 220

传智播客黎老师EJB视频随笔下

 第一课、EJB3.0_下载安装与运行jbossa.下载ejb3.0,地址:http://www.jboss.org/jbosses/downloads/b.解压就是安装,最好别路径包含中文c.run.bat启动,后台http://localhost:8080/,默认配置server里面的defaultd.出错排忧,1)端口是否被占用  2)是否设置JAVA_HOME和ClassP

JeffeHero的专栏 616

EJB3.0视频教程

传智播客最新推出:EJB3.0视频教程,黎活明老师倾心主讲,本视频配套书籍《EJB3.0入门经典》已经由清华大学出版社出版发行。 获得地址http://www.itcast.cn/itcast_static/EJBNEWS.htm

tyklhf的专栏 594
上一篇: 传智播客--JPA的关系映射和JPQL查询
下一篇: 传智播客--CVS,SVN,Maven的服务器端配置和客户端使用详解(毛伟)
getclass
博客等级 码龄17年 53粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值