EJB学习心得

EJB学习心得注意:在EJB中对Bean的定位是通过JNDI的名称来确定的一:当EJB发布到JBOSS时,如果我们没有为它指定全局JNDI名称或修改其默认的EJB名称, JBOSS就会按照默认的命名规则为EJB生成全局JNDI名称。默认的命名规则如下: 如果把EJB作为模块打包进后缀*.ear的JAVAEE企业应用文件,默认的全局JNDI名称是  本地接口:EAR-FILE-BASE-NAME/EJB-C…


Jetbrains全系列IDE稳定放心使用

注意:在EJB中对Bean的定位是通过JNDI的名称来确定的

一:当EJB发布到JBOSS时,如果我们没有为它指定全局JNDI名称或修改其默认的EJB名称,
 JBOSS就会按照默认的命名规则为EJB生成全局JNDI名称。默认的命名规则如下:
 如果把EJB作为模块打包进后缀*.ear的JAVA EE企业应用文件,默认的全局JNDI名称是
  本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
  远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
 如果把EJB应用打包成后缀为*.jar的模块文件,默认的全局JNDI名称是
  本地接口:EJB-CLASS-NAME/local
  远程接口:EJB-CLASS-NAME/remote
二:通过远程接口调用EJB的过程
 首先客户端需要和EJB服务器建立Socket通信,在通信管道上他们需要来回发送IIOP协议消息。
 因为数据要在网络进行传输,存放数据的JAVA对象必须要序列化。
三:通过本地接口调用EJB的过程
 通过本地接口调用EJB,直接在内存中进行交互,这样可以避免网络开销、协议解析的开销和对象序列化的开销。
 但是大家必须要注意,只有客户端与EJB应用在同一个JVM内运行的时候,我们才能调用本地接口 。
四:如何通过使用注解方式注入并使用其他的EJB和服务
 注入和使用其他EJB的方式如下:
 @EJB EJB的接口 EJB的变量
 通过注解”@EJB”可以注入并使用其他的EJB,如果有多个EJB的类实现了同一个接口,那么在使用”@EJB”的时候
 需要明确指定是注入和使用哪一个EJB的Bean。指定方式如下:
 @EJB(beanName=”EJB类的名称”) EJB的接口 EJB的变量
 注入和使用其他服务的方式如下:
 @Resource 服务名称 服务变量
 注意在指定数据源的使用需要配置mappedName的属性值,例如:
 @Resource(mappedName=”数据库的JNDI名称”) DataSource dataSource
五:JMS中的消息
 消息传递系统的中心是消息,一条消息有三部分组成
 头(Header),属性(property),主体(body)
 消息有以下几种类型,他们都是派生自Message接口
 StreamMessage:一种主体中包含JAVA基原值流的消息,如填充和读取均按顺序进行。
 MapMessage:一种主体中包含一组名-值对的消息,没有定义条目顺序
 TextMessage:一种主体中包含JAVA字符串的消息(例如:XML消息)
 ObjectMessage:一种主体中包含序列化的JAVA对象的消息
 BytesMessage:一种主体中包含连续字节流的消息
 消息的传递模型为以下两种:
 点对点(point-to-point:PTP):该消息传递模型规定,一条消息只能传递给一个接收方,可以接受过时的消息。采用javax.jms.Queue表示。
 发布/订阅(publish/subscribe):该消息传递模型规定,一条消息可以传递给多个接收方,只能接受实时的消息。采用javax.jms.Topic表示。
六:如何发送消息(以Queue为例,如果是Topic则应把所有的Queue改为Topic)
 1.得到一个JNDI的初始化上下文(Context)
  InitialContext ctx = new InitialContext();
 2.根据上下文查找一个连接工厂QueueConnectionFactory。该连接工厂是用JMS提供的,不需要我们自己创建,
      每个工厂都绑定一个全局的JNDI,我们通过全局的JNDI来获取它
     QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup(“QueueConnectionFactory”);
 3.通过连接工厂得到一个连接QueueConnection
  QueueConnection conn = factory.createQueueConnection();
 4.通过连接来建立一个会话(Session)
  QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
  建立一个不需要事物的并且能启动确认消息已接受的会话
 5.查找目标地址
  Destination destination = (Destination)ctx.lookup(配置文件的JNDI名称);
 6.根据会话和目标地址来建立消息生产者MessageProducer
  MessageProducer producer = session.createProducer(destination);
  TextMessage msg = session.createTextMessage(“hello world”);
  producer.send(msg);
七:建立一个Message Driver Bean(以Queue为例,如果是Topic则应把所有的Queue改为Topic)
 1.实现javax.jms.MessageListener
 2.通过注解指定监听设置
  @MessageDriven(activationConfig ={

  @ActivationConfigProperty(propertyName=”destinationType”,propertyValue=”javax.jms.Queue”),//监听消息传递的类型
  @ActivationConfigProperty(propertyName=”destination”,propertyValue=”queue/studiozeroQueue”),//设置消息接收方
  @ActivationConfigProperty(propertyName=”acknowledgeMode”,propertyValue=”Auto-acknowledge”) //设置传递模型
  })
八:WEB服务

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187708.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Sql Prompt使用技巧[通俗易懂]

    Sql Prompt使用技巧[通俗易懂]1、刷新缓存打开SqlServer,该插件会自动运行,将数据库中的视图、表、存储过程都缓存起来,所以在第一次打开查询分析器的时候,插件会有一个加载缓存的过程。如果数据库中的对象有变化,需要手动刷新一下缓存,可以按Ctrl+Shift+D,或者在主菜单中找到SQLPrompt→RefreshSuggestions。2、智能提示(1)在查询分析器中写DML语句时,当鼠标移动到…

    2022年7月26日
  • SpringCloud之Zuul网关[通俗易懂]

    SpringCloud之Zuul网关[通俗易懂]Zuul网关

    2022年8月15日
  • tomcat日志乱码怎么解决_log4j日志乱码

    tomcat日志乱码怎么解决_log4j日志乱码1.首先打开tomcat的conf目录下的logging.properties根据编译码去切换,例如你的编译器是utf-8的话,你就可以不用改(里面默认的是utf-8),如果你的编译器是GBK的话,那就把utf-8全部替换成GBK。2.idea设置-Dfile.encoding=UTF-8接着打开help的VMOptions最后重启idea就可以啦!…

    2022年9月26日
  • vim查找选中的文本

    vim查找选中的文本在vim中按/查找的时候,不想每次都键盘输入查找内容,希望能够查找选中的文本。方法如下:第一步:使用y复制选中的文本(yank操作会将文本存入默认寄存器”)第二步:按/键(进入查找模式)第三步:按ctrl+r(访问寄存器)第四步:按”键(粘贴寄存器”的内容)参考资料:https://superuser.com/questions/41378/how-to-search-for-selected-text-in-vim…

    2022年6月18日
  • MT4下载方式_链接下载

    MT4下载方式_链接下载MT4软件的下载方式很多。首先看MT4的版本类型,MT4分电脑版,手机版,和MAC版。手机版,又包含安卓版和苹果版。以上版本都可以在网上上下载:http://mt4.cnca.link/手机版的下载渠道就多一些:苹果版的可以在应用商店里搜索下载,但是安卓版的就不行了,只能在网页上下。…

    2022年8月15日
  • c语言中按位异或运算_c语言按位与怎么算

    c语言中按位异或运算_c语言按位与怎么算按位与运算符:&语法expression&expression备注表达式可以是其他“与”表达式,或(遵循下面所述的类型限制)相等表达式、关系表达式、加法表达式、乘法表达式、指向成员的指针表达式、强制转换表达式、一元表达式、后缀表达式或主表达式。按位“与”运算符(&)会将第一操作数的每一位与第二操作数的相应位进行比较。如果两个位均为1,则对应的结果位将设置为1

    2022年10月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号