±àÒë yife
²Î¿¼ÁËblueprints µÄ session Facade ģʽºó£¬ÎÒºÜÄѸø³öÒ»¸ö±È½ÏÈ·ÇеÄÖÐÎÄÃû³Æ £¬µ±¿´¹ý¸ÃÎĺóÄã»á¾õµÃ °ÑËû³ÆÎª EJB ´úÀíbean ÊDz»´íµÄ¡£
¸Ãģʽ£¬ÔÚ¿´ÍêÏÂͼºó £¬±äµÄºÜºÃÀí½â£º
ÒÔºÜÈÝÒ׵Ŀ´³ö£¬¸ÃÁ÷³Ì°ÑÐí¶àÔ¶³Ìµ÷Óã¬×ª»¯³É¶ÔÒ»¸ösession bean µÄµ÷Óã¬Õâ¾ÍÊÇΪʲô£¬ÎÒÃÇ¿ÉÒÔ°ÑÕâ¸ösession bean¿´³ÉÊÇ ¶Ôºó¶ËµÄEJB´úÀí£¬ÓÉÓÚ¸Ãsession bean ±¾ÉíÒ²´¦ÓÚ J2ee »·¾³£¬ËùÒÔ¿ÉÒÔºÜÈÝÒ×¶ÔEJB ºÍÆäËûj2ee ·þÎñ£¬±ÈÈçjms ,jdbc ½øÐб¾µØµ÷ÓÃ.µ«×îÖ÷ÒªÊÇ¶Ô EJBʵÏÖ²Ù×÷µÄ ½øÐÐÁ˰ü×° £¬Ê¹µÃ¶Ô EJB µÄijЩ ¸Ä¶¯£¬²»»áÓ°Ï쵽ÿ¸ö client £¬Ö»ÒªÔÚ Facade session ÉÏ×öÏàÓ¦µÄ ¸Ä¶¯¡£
ÔÙÀ´¿´Ò»Ï session Facade UML ½á¹¹Í¼
ÒÔÏÂÊÇ blueprints ÔÎÄÖÐ×ܽáµÄ ʹÓÃsession Facade µÄÓÅÊÆ: 1.ÓÉÓÚ½ö½ö±» session Facade Ëùµ÷Ó㬽µµÍÁË ¶Ôejb µÄÎóÓÃÂÊ£¨ÏëÏëÒÔǰ Ôںܶà¸ö jsp Öе÷ÓÃÖÚ¶àµÄEJB µÄ²»Í¬µÄ·½·¨ ÊôÐÔ£¬ÎÒÃÇÍùÍùÐèÒªµ½ ÿ¸öjsp Öв鿴ÎÊÌâµÄËùÔÚ £¬ÏÖÔÚ¿ÉÒÔ°ÑÎÊÌâ½¹µã¼¯ÖÐÔÚ session Facade ÖÐÁË£©
2.¼òµ¥µÄʹÓöàÐÎʽÖÕ¶Ë£¨jsp ,applet ,JFC client£©£¬ÓÉÓÚclient Ö»Òª¼òµ¥µÄµ÷Óà session Facade ,ËùÒÔ¸÷ÖÖclient ÐÎʽ±äµÄ²»ÔÙÖØÒª ¡£(ÎÒ¸öÈ˾õµÃÕâÌõÓÅÊÆ ²»ÊǺÜÃ÷ÏÔ)
3.¿ÉÒÔ°Ñ ÊÂÎñ¡¢°²È«¡¢µ÷ʽ¡¢ÈÕÖ¾¿ØÖƼ¯Öе½Ò»µã¡£ÕâÊDzÉÓôúÀí»úÖÆÏÊÃ÷µÄÌØµã¡£(°Ñsession Facade¿´³ÉÖÐÐĵ㠣¬EJB ºÍ client ¾ùÓÐºÜ¶à £¬Í¨¹ýsession Facade °Ñ Âß¼Á÷³Ì¼¯Öе½ÁËÒ»µã)
4.½µµÍµÄÍøÂç´«Ê䣬°Ñ¶Ô¶à¸öÔ¶³Ì¶ÔÏóµÄµ÷Óà ±ä³ÉÁ˶ÔÒ»¸ö session FacadeµÄµ÷Óã¬ÆäËûµ÷ÓÃת»¯³ÉÁ˱¾µØµ÷ÓÃ. (ÕâÀïÎÒÓÐÁ½µã²¹³ä: a.ºÜ¶àµÄÓ¢ÎÄÎÄÕÂÌáµ½Á˽µµÍÍøÂç´«Ê䣬ÆäʵÔÚʵ¼ÊµÄJ2EE Ó¦ÓÃÖУ¬´ó²¿·ÖÈ˰Ñclient,±ÈÈç˵jsp ºÍEJB ÔÚ·¢²¼ÔÚͬһ¸öapp containorÖУ¬ËäÈ»ÈÔÈ»²ÉÓÃÁËhttp »ò t3µÄÍøÂç´«ÊäÐÒ飬µ«ÔÚͬһ¸ö»úÆ÷ÖÐÔËÐУ¬ËùÒÔ²»Õ¼ÓÃÍøÂç×ÊÔ´£¬Ö»ÊÇÕ¼ÓûúÆ÷µÄÄÚ²¿×ÊÔ´ b.ËäÈ»ÔÚEJB 2.0ÖÐÌá³öÁ˱¾µØ½Ó¿Ú£¬Ìá¸ßÁ˱¾µØclientµ÷ÓÃEJB µÄЧÂÊ£¬µ«´Ósession Facade µÄÉÏÒ»µãÓÅÊÆ¿´³ö£¬ËûÈÔÈ»ÊÇÓÐʹÓüÛÖµµÄ)
5.Ìá¸ßÁ˶ÔEJB µÄÊý¾ÝÄ£Ð͸ıäµÄÊÊÓ¦ÐÔ¡£Ìá¸ßÁ˶Ôapp serverʵÏÖ ±ä»¯µÄÊÊÓ¦ÐÔ. ÔÒò»¹ÊÇsession Facade °ÑÂß¼Á÷³ÌÔڸõãÉÏÊÕ³ÉÒ»µã£¬ÐγÉÁËÁ¼ºÃµÄÂß¼½á¹¹.
ÔÚʵ¼ÊµÄÓ¦ÓÃÉÏ£¬ÓÐÁ½ÖÖÓ¦Ó÷½Ê½£º 1.ʹÓÃstateful session bean À´´ú±í Çø·Ö¸öÌåµÄ£¬¶ÌÆÚµÄ¹¤×÷Á÷³Ì¡£ÔڻỰ ¹¤×÷ÆÚÖб£´æÏàÓ¦µÄ Óû§Êý¾Ý
2.ʹÓÃstateless session bean À´´ú±í¹«ÓÃµÄ µÄ·þÎñÁ÷³Ì.
Ó¦Ó÷¶Àý£º ×¢£ºÓÉÓÚÔÎĸø³öµÄ·¶Àý³ö×Ô Sun Java Pet Store sample ,Ê¡ÂÔÁËºÜ¶àµØ·½£¬¶øÇÒ¹ýÓÚ¸´ÔÓ,ÎÒÊÔןø³öÒ»¸ö¸üÒ×ÓÚÀí½âµÄ·¶Àý£¬µ±È»´ó¼ÒÒ²¿ÉÒԲο¼ÔÎÄÖз¶Àý
client tier: clienthelper.java ÖÐ:
class clientHelper{
public Object Init(String JNDIName) {
InitialContext cntxt = new InitialContext( ); return cntxt.lookup(JNDIName);
}
public myEjbProxy getProxySession(int UID){ //here return session Facade 's remote object
Object ref=Init("java:comp/env/ejb/myEjbProxy"); myEjbProxyHome myProxyHome= (myEjbProxyHome )PortableRemoteObject.narrow(ref,myEjbProxyHome.class); retrun myProxyHome.create(UID);
}
public CartItem getCartItem(int UID){ // get the session Facade myEjbProxy ,here is statful session myEjbProxy theproxy = getProxySession(UID); retrun theproxy.getCartItem(); }
... ...
}
session Facade:
public class myEjbProxyBean implements SessionBean{ ... ...
public CartItem getCartItem(){
//invoke some method in Entity ejb }
} ÔĶÁÓ¢ÎÄÔÎÄ
|
|