<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA

    人生若只如初見,何事秋風(fēng)悲畫扇。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      50 隨筆 :: 25 文章 :: 157 評論 :: 0 Trackbacks

    在EJB3中,所有的服務(wù)對象管理都是POJOS(e.g., session beans)或者是輕量級組件(e.g., message driven beans).

    簡單的看下各種BEAN:

    1:Stateless Session Beans(EJB3中已經(jīng)不再有HOME接口了)

    Define the session bean interface

    要定議一SESSION BEAN,首先必須定義一服務(wù)接口包含它所有的業(yè)務(wù)邏輯方法(define the service interface containing all its business methods.)SESSION BEAN的接口沒有注釋,客戶通過EJB3的窗口來獲取此對象接口。

    public interface Calculator 

         
    public double calculate (int start, int end, double growthrate, double saving); 
    }
     

    The session bean implementation

    定義好接口好后,就是提供對此接口的繼承了,此繼承是一個簡單的POJO,EJB3的窗口自動實例化管理此POJO。由@Stateless來申明類型。注意此類名后面一定得有Bean,如CalculatorBean


    @Stateless
    public class CalculatorBean 
                   
    implements Calculator, RemoteCalculator {

      
    public double calculate (int start, int end, 
                        
    double growthrate, double saving) {
        
    double tmp = Math.pow(1+ growthrate / 12., 
                              
    12* (end - start) + 1);
        
    return saving * 12* (tmp - 1/ growthrate;
      }


    }
     


    Remote and local interface

    一個SESSION BEAN可以繼承多個接口,每個接口對應(yīng)不同類型的客戶端,默認的接口是“LOCAL”,也就是運行在EJB3窗口的同一個JVM中,比如說,以上的BENAS和JSP頁面都運行于同一個JBOSS JVM中。也是繼承ROMOTE接口,遠程客戶通過遠程調(diào)用此接口,此接口一般除了LOCAL中的方法外,不有些別的方法(相對LOCAL而言),比如對服務(wù)端的說明。如下 :

    public interface RemoteCalculator {
      
    public double calculate (int start, int end, double growthrate, double saving); 

     
    public String getServerInfo (); 

    }

     



    The session bean client

    一旦此BEAN部署到了EJB3的窗口,也就已經(jīng)在服務(wù)器中的JNDI注冊中已經(jīng)注冊(Once the session bean is deployed into the EJB 3.0 container, a stub object is created and it is registered in the server's JDNI registry.)。客戶端可以通過在JNDI中對此接口的類名的引用來實現(xiàn)對其方法的引用。客戶端代碼(JSP中哦):

    private Calculator cal = null;

    public void jspInit () {
        
    try {
          InitialContext ctx 
    = new InitialContext();
          cal 
    = (Calculator) ctx.lookup(
                      Calculator.
    class.getName());
        }
     catch (Exception e) {
          e.printStackTrace ();
        }

    }


    //  

    public void service (Request req, Response rep) {
        
    //  
        double res = cal.calculate(start, end, growthrate, saving);
    }

    注:應(yīng)盡量避免使用遠程接口(效率,花費...)

    在繼承實現(xiàn)BEAN的類中可以通過@Local and @Remote 的注釋來指定此BEAN的接口類型。如:

    @Stateless 
    @Local(
    {Calculator.class}
    @Remote (
    {RemoteCalculator.class}
    public class CalculatorBean implements Calculator, RemoteCalculator 
    {
      
    public double calculate (int start, int end, double growthrate, double saving) 
      

        
    double tmp = Math.pow(1+ growthrate / 12., 12* (end - start) + 1); 
        
    return saving * 12* (tmp - 1/ growthrate; 
      }


      
    public String getServerInfo () 
      
    {
        
    return "This is the JBoss EJB 3.0 TrailBlazer"
      }

    }
     


    也可以通過@Local and @Remote在接口中分別指定,這樣就不用在繼承實現(xiàn)類中再指定了,如:

    @Remote 
    public interface RemoteCalculator 
    //   } 


    總結(jié):本節(jié)主要學(xué)習(xí)了如何開發(fā)sessionless bean ,有時間繼續(xù)討論sessionful bean.

    參考:www.jboss.org相關(guān)文獻。

    posted on 2006-01-24 00:47 Jkallen 閱讀(548) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产香蕉人人爽成AV片久久 | 91短视频在线免费观看| 国产精品免费视频网站| 亚洲一区二区三区在线观看网站| 最好看的中文字幕2019免费| 亚洲综合精品一二三区在线| gogo免费在线观看| 国产国拍亚洲精品福利 | 亚洲日韩国产精品无码av| 色欲国产麻豆一精品一AV一免费| 久久精品国产亚洲av麻| 免费福利在线视频| 亚洲美女大bbbbbbbbb| 2020久久精品国产免费| 亚洲中文字幕在线无码一区二区 | 亚洲三级高清免费| 最新国产精品亚洲| 成年女人永久免费观看片| 国产成人亚洲精品电影| 国产免费人人看大香伊| 国产成人亚洲综合在线| 激情97综合亚洲色婷婷五| 久久免费公开视频| 亚洲视频无码高清在线| 免费人成在线观看网站视频| 99re8这里有精品热视频免费| 亚洲AV无码久久精品色欲| 91黑丝国产线观看免费| 亚洲欧美国产欧美色欲| 亚洲日韩中文在线精品第一 | 亚洲精品一二三区| av无码东京热亚洲男人的天堂| a级男女仿爱免费视频| 亚洲乱码在线播放| 特级一级毛片免费看| 国产精品无码素人福利免费| 久久精品国产亚洲香蕉| 成年女人免费v片| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 中文字幕av无码不卡免费| 亚洲日本乱码一区二区在线二产线 |