无状态会话bean(1)---定义
無狀態會話bean用于完畢在單個方法的生命周期內的操作。無狀態bean能夠實現很多業務操作,可是每一個方法都不能假定不論什么其它的方法會在它之前調用。后半句的意思是如今的你可能不是剛才的你。明天的你可也能不是今天的你,這個時候你就叫做“無狀態你”。
上面的闡述聽起來像是無狀態的bean的一個局限,好像每次再見就像永別似的。
可是這是迄今為止業務服務最常見的形式,就像去飯店吃飯,點菜的服務員與給你上菜的服務員是不是同一個這不是我們所關心的。
無狀態回話bean不同于適合在對話中積累狀態(如零售應用程序的購物車)的有狀態會話bean。無狀態回話bean旨在很有效的運行獨立操作。無狀態會話bean這樣設計的目的也是考慮到server忍受不了大量client的時候對資源的占用。
會話bean定義分為例如以下兩個部分:
l? 零個或多個業務接口。定義了一個client在bean上能夠調用的方法。
當未定義接口時,bean的實現類的公共方法集合形成了一個邏輯client接口。
l? 實現這些接口的類,稱之為bean類,採用@Stateless注解進行標記。
大多數會話bean有一個業務接口,可是對會話bean能夠向其client公開的接口數量是沒有限制。當server遇到@Stateless注解時,它會知道把該bean當做一個會話bean。
它將在EJB容器中配置這個bean,使得應用程序的其它組件能夠使用它。
以下的這個EJB版本號的Hello World樣例中包括了一個業務接口。在此演示樣例中包括了一個單一的方法。沒有注解或者父接口來指明這是一個業務接口。和一般的類實現接口看起來是一模一樣的。當會話bean實現它時,將會自己主動把它視為一個本地業務接口,意味著僅僅有在同一個應用程序server上的client能夠訪問它。
為了強調一個接口是本地業務接口,能夠選擇把@Local注解加入到該接口上。
public interface HelloService {public String sayHello(String name); }
如今考慮接口的實現。以下的代碼展示的是一個實現了上面接口的常規Java類 。這個類唯一特別的是@Stateless注解,標記它是一個無狀態會話bean。
業務方法實現上沒有不論什么特殊的限制或要求,它恰好是一個EJB的常規類。
@Stateless public class HelloServiceBean implements HelloService {public String sayHello(String name) {return "Hello, " + name;} }關于無接口視圖
在EJB3.1中引入無接口視圖(no-interface-view),它支持本地會話bean能夠沒有實現接口。這使得定義一個本地會話bean以及訪問這個本地會話bean更加簡單。如以下代碼所看到的使用無接口視圖定義上面代碼中同樣的HelloServiceBean,開發者僅僅需創建實現類,無需實現不論什么業務接口:
@Stateless public class HelloServiceBean {public String sayHello(String name) {return "Hello, " + name;} }
會話bean的邏輯接口包括了它的公共方法,在本例中是sayHello()方法。client把HelloServiceBean類當做接口一樣使用,不必考慮不論什么非公開的方法或實現的具體信息。
能夠想象server內部向client提供了一個代理接口,這個代理覆蓋業務方法以提供標準的容器服務,client將與這個代理進行交互。
無接口視圖的長處之中的一個是簡單。
它不須要實現一個冗余的業務接口,并進一步使得EJB看起來像是常規JavaBean類。
然而,由于無接口視圖僅適用于本地回話bean。本例中採用傳統樣式的獨立接口,從而保證無狀態和有狀態會話bean一致。
對于無狀態會話bean類的定義僅僅須要注意兩點。第一是它須要一個無參數的構造函數,可是當沒有其它的構造函數時。編譯器一般會自己主動生成此構造函數。第二是不應該使用靜態字段,這主要是由于bean的又一次部署問題。
很多EJB容器創建一個無狀態會話bean的實例池。然后選擇隨意的一個實例以服務每一個client請求。由于這不能保證調用之間將使用同樣的狀態,所以不能覺得點菜的服務員與給你上菜的服務員一定是同一個人。
轉載于:https://www.cnblogs.com/gcczhongduan/p/5131632.html
總結
以上是生活随笔為你收集整理的无状态会话bean(1)---定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 业务需求、用户需求和功能需求
- 下一篇: 渗透思维导图