国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
【使用xdoclet開(kāi)發(fā)ejb】
你開(kāi)發(fā)過(guò)EJB么?當(dāng)你去創(chuàng)建和操作EJB的XML部署描述以及接口時(shí),是否受過(guò)挫折呢?我當(dāng)然有過(guò)。
我近來(lái)正在用EJB開(kāi)發(fā)一個(gè)叫Xbeans的開(kāi)源項(xiàng)目,并且決定使用另外一個(gè)開(kāi)源工具 -- XDoclet -- 來(lái)生成XML描述和EJB接口.
   使用XDoclet可以讓你在J2EE框架內(nèi)更高效的工作。你將有一個(gè)更簡(jiǎn)單的beans之間的視圖和關(guān)系,
并且可以去除很多你在開(kāi)發(fā)中的煩惱。
   這篇文章將討論XDoclet,以及如何去使用和擴(kuò)展它。在這里,我們將創(chuàng)建一個(gè)使用javadoc標(biāo)記(tag)的會(huì)話(Session)Bean,并且使用XDoclet運(yùn)行它。
什么是XDoclet?
   XDoclet是在Rickard Oberg創(chuàng)建的EJBDoclet基礎(chǔ)上演化過(guò)來(lái)的一個(gè)工具。它的想法很簡(jiǎn)單:通過(guò)bean類本身來(lái)查看整個(gè)組件,而不是通過(guò)操作多個(gè)ejb文件。它是怎樣做到的呢?java除了有javadoc標(biāo)記外,并沒(méi)有.NET所宣傳的"屬性"。我們可以在javadoc注釋中放入特殊@標(biāo)簽,讓一個(gè)Doclet的工具來(lái)尋找這些標(biāo)簽,讓后根據(jù)bean給的信息集合來(lái)生成合適的XML描述和接口。XDoclet以EJBDoclet觀念為基礎(chǔ),并且把此框架擴(kuò)展在EJB領(lǐng)域之外,現(xiàn)在你可以生成Web Services,Web Applicaiton的描述,甚至通過(guò)擴(kuò)展來(lái)滿足你個(gè)人的需要。
   @標(biāo)簽有一個(gè)標(biāo)準(zhǔn)的格式:一個(gè)“命名空間(namespace)”和一個(gè)屬于命名空間的“標(biāo)簽名稱(tagname)",然后是經(jīng)由 name="value"的屬性傳遞給標(biāo)簽。
 下面是一個(gè)通用的示例:
  /**
 * @namespace:tag name="value" name2="value2" ...
 */

當(dāng)前的命名空間有:
   ejb:標(biāo)準(zhǔn)EJB信息(不包括特定廠商)
   jboss:關(guān)于Jboss應(yīng)用服務(wù)器的特定信息
   weblogic:關(guān)于BEA‘s Weblogic 應(yīng)用服務(wù)器的特定信息
   wegSphere:關(guān)于IBM‘s WebSphere 應(yīng)用服務(wù)器的特定信息
   orion:關(guān)于Orion應(yīng)用服務(wù)器(Oracle)的特定信息
   castor:根據(jù)Castor框架生成相關(guān)的映射信息
   mvcsoft:根據(jù)MVCSoft EJB2.0的持久管理器生成相關(guān)的文件
   soap:生成SOAP描述
   structs:根據(jù)FORM和Action生成structs-config.xml
   web:根據(jù)Web Application生成web.xml配置
   jsp:生成tld信息
正如你看到的,除了EJB還支持很多其他的框架,所有EJBDoclet改名成XDoclet.(譯者:當(dāng)然了,現(xiàn)在支持的框架更多了,包括近來(lái)流行的spring,hibernate等,具體參考官方網(wǎng)站http://xdoclet.sourceforge.net

會(huì)話Bean:通過(guò)使用特殊的Javadoc標(biāo)簽創(chuàng)建一個(gè)會(huì)話Bean
    既然我們已經(jīng)談?wù)摿薠Doclet,現(xiàn)在讓我們來(lái)一個(gè)真實(shí)的示例吧。我們將以一個(gè)會(huì)話EJB開(kāi)始。這個(gè)EJB是Xbeans框架的一部分,但是在這里,我們并不關(guān)心它是做什么的。我們僅僅關(guān)心怎樣通過(guò)Javadoc標(biāo)簽把這個(gè)bean類標(biāo)記出來(lái),然后使用XDoclet來(lái)生成我們的元文件(meta files).
    ReceiverBean.java將包含方法:documentReady(Document doc).在這個(gè)XBean鏈表中,此方法使用一個(gè)DOM文檔(document)參數(shù),并且把它傳遞給下一個(gè)XBean。
 
類級(jí)別標(biāo)簽的定義
    在類級(jí)別中,我們需要定義:
   1。這是一個(gè)無(wú)狀態(tài)的會(huì)話bean.
   2。JNDI的名稱
   3。環(huán)境實(shí)體
   4。廠商的特定信息(Weblogic pooling信息)

標(biāo)簽:@ejb:bean
    在這個(gè)標(biāo)簽中,唯一要設(shè)置的XDoclet屬性是bean的名稱。我們還將定義bean的類型,綁定到客戶樁的JNDI名稱以及顯示名稱:
/**
 *   This is the EJB Receiver Xbean
 *
 *   @ejb:bean type="Stateless"
 *             name="ejbReceiver"
 *             jndi-name="org.xbeans.ejb.receiver.Receiver"
 *             display-name="EJB Receiver Xbean"
 *
 * ... other javadoc tags ...
 */
public class ReceiverBean implements SessionBean, DOMSource {
ejb:bean最常用的屬性是:
name:EJB的名稱(在描述中使用)
type:定義bean的”類型“,對(duì)會(huì)話bean,是Stateful或Stateless,對(duì)實(shí)體bean是CMP或BMP
jndi-name:JNDI名稱將在特定廠商的部署描述中使用(對(duì)遠(yuǎn)程接口來(lái)說(shuō))
local-jndi-name:和jndi-name相似,除了給本地接口使用外。
view-type:說(shuō)明bean將支持的"接口視圖(views)",可以是remote,local或者both.
至于全部標(biāo)簽,可以查看XDoclet文檔了解全部選項(xiàng)。
標(biāo)簽:@ejb:env-entry
這個(gè)標(biāo)簽定義一個(gè)經(jīng)由特殊的java:comp/env上下文,被配置在JNDI的環(huán)境實(shí)體.我們將定義一個(gè)環(huán)境實(shí)體,在此實(shí)體中bean將在鏈表中尋找下一個(gè)Xbean.
/**
 *   This is the EJB Receiver Xbean
 *
 * ... other javadoc tags ...
 *
 *   @ejb:env-entry name="channelBean" type="java.lang.String"
 *                  value="com.your.ChannelBean"
 *
 * ... other javadoc tags ...
 */
public class ReceiverBean implements SessionBean, DOMSource {
標(biāo)簽:@weblogic:pool
現(xiàn)在我們將使用Weblogic的參數(shù)來(lái)配置特定廠商的池特征。為了表示我們?cè)谑褂锰囟◤S商,我么使用了weblogic命名空間:
/**
 *   This is the EJB Receiver Xbean
 *
 * ... other javadoc tags ...
 *
 *   @weblogic:pool max-beans-in-free-pool="1000"  
 *                  initial-beans-in-free-pool="10"
 *
 * ... other javadoc tags ...
 */
public class ReceiverBean implements SessionBean, DOMSource {
這個(gè)標(biāo)簽將在weblogic的部署描述文件(weblogic-ejb-jar.xml)里配置池的參數(shù)。
當(dāng)然了,在部署中,還可以使用許多其他類級(jí)別(class-level)的標(biāo)簽。以下是經(jīng)常被使用的標(biāo)準(zhǔn)標(biāo)簽的一瞥:
@ejb:bean
    這是唯一要求必須的標(biāo)簽,它用來(lái)配置bean的基本信息
@ejb:home
    這個(gè)標(biāo)簽提供了home接口的信息。你可以讓XDoclet去繼承一個(gè)自定義的接口,可以生成那種home接口(none,remote,local,or both),接口的package應(yīng)該是什么,等等
@ejb:interface
    和home標(biāo)簽相似,除了可以配置相關(guān)接口的信息(遠(yuǎn)程和/或本地)。
@ejb:finder
    在實(shí)體beans的home接口中定義查找的方法
@ejb:select
    在實(shí)體beans的home接口中定義選擇的方法
@ejb:pk
    為實(shí)體bean定義主鍵。XDoclet能夠?yàn)槟阕詣?dòng)生成主鍵類。
@ejb:data-object
    通過(guò)這個(gè)標(biāo)簽,可以自動(dòng)生成實(shí)體beans的數(shù)據(jù)對(duì)象。
@ejb:ejb-ref
    配置EJB的引用
@ejb:ejb-external-ref
    配置要引用在別的應(yīng)用中的beans。在這里,你需要輸入象bean的類型,home/remote接口的類等
@ejb:resource-ref
    配置資源引用。
@ejb:security-role-ref
    配置安全角色引用
@ejb:transaction
    為有事務(wù)行為的remote和home接口的所有方法定義事務(wù)類型。單獨(dú)方法的事務(wù)標(biāo)簽可以覆蓋。
@ejb:permission
    允許基于角色來(lái)調(diào)用remote和home接口的所有方法。
@ejb:security-identity
    用來(lái)指定在執(zhí)行EJB的方法時(shí),是否需要調(diào)用者的安全標(biāo)識(shí),或者是否需要一個(gè)特別的運(yùn)行標(biāo)識(shí)。

方法級(jí)別標(biāo)簽的定義
  如果我們想讓一個(gè)方法成為remote接口的一部分,那么只需要通過(guò)一個(gè)方法級(jí)別的標(biāo)簽就可以了。示例如下:
  /**
   *  The method that the sender uses to pass the Document
   *
   *  @ejb:interface-method view-type="remote"
   */
  public void documentReady(Document incomingDocument) {
這個(gè)標(biāo)簽是必須。你將在bean類中完成這些方法,并且如果你希望讓客戶端也能夠訪問(wèn)它,那么在你方法聲明處加入這個(gè)標(biāo)簽。如果你想僅僅通過(guò)本地接口訪問(wèn),你只需要簡(jiǎn)單把view-type值修改成為"local"就可以了。
以下是其他一些EJB方法級(jí)別的標(biāo)簽:
@ejb:relation
    定義了EJB2.0 CMP實(shí)體bean之間的關(guān)系
@ejb:home-method
    將方法定義為ejbHome*的方法
@ejb:persistent-field
    在生成的CMP層類型(layer of type)中創(chuàng)建CMP的字段"X",并且具體實(shí)現(xiàn)getX/setX方法。
    對(duì)于BMP來(lái)說(shuō),它將生成保持臟標(biāo)志(dirty flag)的getX/setX方法(以方便ejbStore在需要的時(shí)候調(diào)用)
@ejb:pk-field
    標(biāo)志主鍵字段
@ejb:transaction
    給方法定義事務(wù)的行為(只能是以下有效屬性:NotSupported|Supports|Required|RequiresNew|Mandatory|Never.
@ejb:permission
    定義方法的權(quán)限(以逗號(hào)分隔的角色列表將被允許訪問(wèn)這個(gè)方法)。
使用XDoclet來(lái)構(gòu)建Bean
  現(xiàn)在我們已經(jīng)有一個(gè)使用XDoclet做了標(biāo)記的ReceiverBean.java的源文件。現(xiàn)在需要運(yùn)行XDoclet來(lái)為生成所有我們需要的。更好的方法是使用Jakarta-Ant來(lái)構(gòu)建系統(tǒng)。
Ant是一個(gè)基于java的普遍使用的構(gòu)建系統(tǒng)。如果你還沒(méi)有使用Ant,那么就到Jakarta官方網(wǎng)站下載一個(gè),或者參考Open Source Java:Ant
  XDoclet的團(tuán)體已經(jīng)開(kāi)發(fā)好了Ant任務(wù)(task),所以我們只需要簡(jiǎn)單加入到構(gòu)建文件(build.xml)中就可以使用了.
主要有兩個(gè)任務(wù):.既然我們?cè)谑褂肊JB,那就讓我們?cè)跇?gòu)建文件中仔細(xì)的研究一下ejbdoclet目標(biāo)(target詳細(xì)請(qǐng)參考Ant文檔)。
         classname="xdoclet.ejb.EjbDocletTask" classpath="${java.class.path};${xdoclet.jar.path};
        ${log4j.jar.path};${ant.jar.path}"/>
<>
sourcepath="${java.dir}"
destdir="${generated.java.dir}"
ejbspec="2.0">

   


            version="2.4" xmlencoding="UTF-8" /><>< span="">                <>
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
XDoclet:EJB開(kāi)發(fā)好幫手
圖解MyEclipse炮制(EJB)SessionBean全過(guò)程_Edmond's
java筆試題大匯總(二)
java面試
在Spring中實(shí)現(xiàn)事務(wù)掛起
JAVA面試試題集
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服