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

      EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)

    JavaEE 规范
      支持企业级应用软件的开发
      客户层:Applet、客户应用程序
      表示逻辑层:JSP、Servlet  Web容器
      业务逻辑层:EJB 构件 EJB容器
      数据库层:数据库

    无状态会话Bean

    为客户提供计算服务
      描述业务逻辑(计算服务、数据库查询)
      无上下文关系、不需要引用参数和数据库之外的数据
      单独的会话Bean对象是不可以共享的,它只能有一个
      客户端访问,同样一次会话也只能有一个用户
      不保存客户的任何数据状态
    构件接口
      本地接口:提供给本机程序
      远程接口:提供给其他网络程序

    生存周期
      容器管理Bean构件池,负责创建和实例化
      无状态会话Bean不会进行钝化(Passivate)

    //远程接口
    import javax.ejb.Remote;
    @Remote //标注接口(标记接口...)
    public interface MyNameRemote {
        public String method_1( ); 
    }
    //接口的实现
    import javax.ejb.Stateless;
    @Stateless //标注接口:无状态Bean
    public class MyNameBean implements MyNameRemote {
        public String method_1( ) { returnstring” }
    }

    专用标注(annotation)代替专用基本类、接口
      @EJB 构件引用
      @Remote 远程接口
      @Local 本地接口
      @Stateless 无状态Bean
      @Stateful 有状态Bean

    有状态会话Bean

    客户专用的会话Bean构件
      维护客户的数据,支持作业session处理
      案例:网上商城系统中的购物车
      特点:特定客户、特定业务的需求
      作为软件组件,为应用程序共享
    注意
      有状态会话Bean的每个用户都有自己的一个实例,所以
      不同的客户对有状态会话Bean的操作不会影响对方
      如果后面需要操作某个客户的有状态会话Bean实例,必
      须在客户端缓存有状态会话Bean的引用对象
      在JSP、Servlet中通常的做法是用Session缓存

    生命周期
      客户引用: 初始状态→工作状态
      长时间不用: 工作状态→挂起状态
      客户请求: 挂起状态→工作状态
      超时: 挂起状态→初始状态

    //远程业务接口(AccountBeanRemote.java)
    package session;
    import javax.ejb.Remote;
    @Remote //远程接口
    public interface AccountBeanRemote {
        double getBalance() throws Exception; //查余额
        void deposit(double amount) throws Exception; //存款
        void withdraw(double amount) throws Exception; //取款
        double resetAccount();
    }
    package session; EJB构件的实现
    import javax.ejb.Stateful;
    @Stateful //有状态会话Bean
    public class AccountBean implements AccountBeanRemote {
    private double account =0.0;
    public double getBalance() throws Exception {
        return this.account; //返回余额
    }
    public void deposit(double amount) throws Exception {
        if(amount<0){ //核查输入存款数是否合理
            throw new Exception("Error Amount");
        }
        account += amount; //累加存款
    }
    public void withdraw(double amount) throws Exception {
        if(amount < 0){ //核查输入存款数是否合理
            throw new Exception("Error Amount");
        }
        if(account<amount){ //核查存款是否足够
            throw new Exception("Account is not Enough");
        }
        account ‐= amount; //减除存款
    }
    public double resetAccount() {
        this.account = 0.0;
        return this.account;
    }
    }

    上边这个是有状态会话bean的一个例子,仅供参考

  • 相关阅读:
    这仅仅是一份工作
    和老总之间的对话
    假设满足怎样的条件,就不去编程
    那都是别人的架构
    程序员狂想曲
    学点经济学知识(三)
    一起来看 HTML 5.2 中新的原生元素 <dialog>
    动态配置页面 之 组件系统
    初识JavaScript EventLoop
    webpack+vue-cli+ElementUI+vue-resource 前端开发
  • 原文地址:https://www.cnblogs.com/chengyu404/p/5600847.html
Copyright © 2011-2022 走看看