zoukankan      html  css  js  c++  java
  • EJB学习笔记一

    EJB
    1.把一切业务或一切对象或操作 都以bean的形式展示和运用(个人理解)
    2.根据bean的分类可以分为 SessionBean、EntityBean、MessageDriverBean.
    3.SessionBean 又可以分为有状态(stateful)和无状态(stateless)

    3.1 什么是有状态的? 就如我们购物车一般  信息跟着用户走,保存用户的购物信息,
    直到用户退出为止,有状态它是描述对象的信息状态并呈现对象的描述(个人感觉)。
    有状态的,每次使用此类SessionBean都要就行实例化一次,故性能上或服务器压力会有
    所影响。

    3.2 无状态,不保存夸信息。又例如 购物车   你在A页面买了个商品SS,点到B页面想买
    CC商品,当点到B页面时候,刚才买的SS商品不会保存,它(EJB容器)又会给你一个新
    的购物车。无状态是每次都进行一次实例化。
    sessionBean  一个sessionBean都有其作用域,本地(Local)或远程(Remote)
    local接口 只能在本机进行调用   remote接口只能进行远程调用
    建议最好都实现两接口。
    而在客户端其实只是暴露一个接口,使用接口的方法就行业务操作

    EntityBean 是POJO类 主要描述实体之间的关系以及与数据库里的表进行映射。
    使用其方式有点类似hbernate 而却没有映射文件(自EJB3.0没有).

    4.文件的配置
                    以下文件名和后缀名都不可以修改
      4.1
          jndi.properties文件(重要)
          java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
          java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
          java.naming.provider.url=localhost:1099
    可放在classpath下(放到src下MyEcliprise工具自动放到classpath下)
      还可放在META-INF 目录下
    因为远程调用或是本地调用都是通过名称来查找调用的,而JNDI就是幚你查找的工具
      4.2
          persistence.xml文件
    <persistence>
    <persistence-unit name="stu"><!--随便改-->
      <jta-data-source>java:/mysql</jta-data-source><!--要与deploy
    目录中的配置数据源的配置文件一样-->
      <properties>
    <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    <property  name="hiberbante.show_sql" value="true"/>
    <property name="hibernamte.format_sql" value="true"/>
    </properties>
    </persistence-unit>
    </persistence>
    所放置位置如上!

    5 具体代码显示
    <!=========class Hello=======================>
              package com;
    import javax.ejb.Stateless;
    @Stateless
    public class Hello implements HelloRemote {
    public void say(String name) {

      System.out.println(name+",你好啊!");
      
    }
    }
    <!=========Interface HelloRemote======================>
          
    package com;
    import javax.ejb.Remote;
    @Remote
    public interface HelloRemote {
      public void say(String name);
      
    }

      <!=====================测试类==============>

    package com;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public class Main {
    /**
      * @param args
      */
    public static void main(String[] args) {
        try {
      Context ct=new InitialContext();//获得JNDI上下文
          
            //如果部署成功  其实客户端的Hello实现类可以删除  只暴露接口
    HelloRemote hello=(HelloRemote)ct.lookup("Hello/remote");
    hello.say("zhanvg");
    } catch (NamingException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    }
    }
  • 相关阅读:
    查看电脑或者服务器sqlserver端口命令
    cvc-elt.1: Cannot find the declaration of element 'beans'Failed to read schema document 'http://www.springframework.org/schema/beans/spring- beans-3.0.xsd'
    彻底卸载注册表、流氓软件的工具Uninstall Tool
    sqlserver安装报错:an error was encountered 数据无效
    导入虚拟机vmware,此主机支持Intel VT-x,但Intel VT-x处于禁用状态和黑屏
    设计模式----观察者模式通俗实例
    设计模式----策略模式通俗实例
    设计模式----代理模式通俗实例
    简单的纯js三级联动
    linux安装windows启动盘
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/1418898.html
Copyright © 2011-2022 走看看