ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美福利视频一区,精品国产第一区二区三区观看体验,中文字幕亚洲一区二区三区http://www.aygfsteel.com/jiandeh/category/10389.html你准备好˜qŽæŽ¥ä¸‹ä¸€ä¸ªæŒ‘æˆ˜äº†å—ï¼Ÿzh-cnWed, 16 May 2007 10:30:12 GMTWed, 16 May 2007 10:30:12 GMT60利用JExcelApi来动态生成excel文档 http://www.aygfsteel.com/jiandeh/articles/47494.htmlLORD BLOGLORD BLOGMon, 22 May 2006 08:54:00 GMThttp://www.aygfsteel.com/jiandeh/articles/47494.htmlhttp://www.aygfsteel.com/jiandeh/comments/47494.htmlhttp://www.aygfsteel.com/jiandeh/articles/47494.html#Feedback0http://www.aygfsteel.com/jiandeh/comments/commentRss/47494.htmlhttp://www.aygfsteel.com/jiandeh/services/trackbacks/47494.html首先åQŒè¯·åˆ?a >http://www.andykhan.com/jexcelapi/index.html下蝲java excel apiåQŒä¸»™åµä¸ŠåŒæ—¶æœ‰æ¯”较详¾l†çš„ä»‹ç»ã€‚æœ€æ–°ç‰ˆæœ¬äØ“2.4.3åQŒåŒæ—¶ä¹Ÿå¯ä»¥åˆŽÍ¼šhttp://www.andykhan.com/jexcelapi/jexcelapi_2_4_3.tar.gz下蝲到该最新版的APIåQŒç”±äºŽè¯¥™å¹ç›®æ˜¯å¼€æºçš„åQŒæ‰€ä»¥ä¸‹è½½çš„æ–‡äšg中已¾låŒ…含了源代码,同样的,文äšg中也有javadocåQŒå¤§å®¶åœ¨å¼€å‘中可以参考javadocã€?/p>

下蝲完毕后,我们需要把文äšg中的jxl.jar加入åˆîC½ çš„开发classpath中ã€?br />下图是现在要生äñ”çš„excel截图åQ?br />http://blog.csdn.net/beming/gallery/image/3437.aspx

代码如下åQ?/p>

   File excel = new File("d:/aming.xls");
   if(!excel.exists()){
    excel.createNewFile();
   }   
   WritableWorkbook wwb = Workbook.createWorkbook(excel);
   WritableSheet ws = wwb.createSheet("testexcel",0);
   Label lable = null;
   
   //对中文的支持非常�br />   lable = new Label(0,0,"我的中国�);
   ws.addCell(lable);
   
   //可以定义模板格式化你的cell
   WritableFont wf = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
   WritableCellFormat wcf = new WritableCellFormat(wf);
   wcf.setBackground(Colour.WHITE);
   lable = new Label(0,1,"fdsl",wcf);
   ws.addCell(lable);
   
   wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
   wcf = new WritableCellFormat(wf);
   lable = new Label(0,2,"aming",wcf);
   ws.addCell(lable);
   
   //cellçš„ç±»åž‹åŒæ ·å¯ä»¥å®šä¹‰äØ“æ•°å­—¾cÕdž‹
   Number nb = new Number(0,3,21.4321321);
   ws.addCell(nb);
   
   //支持格式化你的数字串
   NumberFormat nf = new NumberFormat("#.###");
   wcf = new WritableCellFormat(nf);
   nb = new Number(0,4,21.43254354354354,wcf);
   ws.addCell(nb);

   //cellçš„ç±»åž‹å¯ä»¥äØ“boolean¾cÕdž‹
   Boolean bl = new Boolean(0,5,true);
   ws.addCell(bl);

   //cellçš„ç±»åž‹åŒæ ·å¯ä»¥äØ“æ—¥æœŸåQŒæ—¶é—?br />   DateTime dt = new DateTime(0,6,new Date());
   ws.addCell(dt);

   //òq¶ä¸”可以很好格式化你的日期格å¼?br />   DateFormat df = new DateFormat("MM dd yyyy hh:mm:ss");
   wcf = new WritableCellFormat(df);
   dt = new DateTime(0,7,new Date(),wcf);
   ws.addCell(dt);
   
   //开始写文äšgäº?br />   wwb.write();
   wwb.close();

上面的下载地址无法打开.
下蝲请到:http://prdownloads.sourceforge.net/jexcelapi



LORD BLOG 2006-05-22 16:54 发表评论
]]>
Jakarta-Common-BeanUtils使用½W”è®°http://www.aygfsteel.com/jiandeh/articles/47487.htmlLORD BLOGLORD BLOGMon, 22 May 2006 08:29:00 GMThttp://www.aygfsteel.com/jiandeh/articles/47487.htmlhttp://www.aygfsteel.com/jiandeh/comments/47487.htmlhttp://www.aygfsteel.com/jiandeh/articles/47487.html#Feedback0http://www.aygfsteel.com/jiandeh/comments/commentRss/47487.htmlhttp://www.aygfsteel.com/jiandeh/services/trackbacks/47487.htmlhttp://blog.csdn.net/fanjun/archive/2005/02/17/291662.aspx

1.   概述

       ½W¬ä¸€‹Æ¡æŽ¥è§?/span>BeanUtils是在学习Struts的过½E‹ä¸­åQŒåœ¨Struts中它被大量用于处ç?/span>FormBeanã€?/span>

BeanUtils主要提供了对äº?/span>JavaBean˜q›è¡Œå„种操作åQ?/span>

       BeanUtils一共分4个包åQ?/span>

Ø         org.apache.commons.beanutils

Ø         org.apache.commons.beanutils.converters

Ø         org.apache.commons.beanutils.locale

Ø         org.apache.commons.beanutils.locale.converters

其中上面两个æ˜?/span>BeanUtils的默认实玎ͼŒå®ƒæ²¡æœ‰é’ˆå¯ÒŽ(gu¨©)œ¬åœ°åŒ–çš„ä“Q何处理,˜q™ä¸ªå¯ä»¥æé«˜æ‰§è¡Œæ•ˆçŽ‡ã€‚ä½†æ˜¯è‹¥ä½ çš„½E‹åºå¯¹äºŽæœ¬åœ°åŒ–有要求的话åQŒé‚£˜q˜æ˜¯ä½¿ç”¨ä¸‹é¢2个包比较安全ã€?/span>

 

2.   org.apache.commons.beanutils

       ˜q™ä¸ªåŒ…主要提供用于操ä½?/span>JavaBean的工å…ïL±»åQ?/span>Jakarta-Common-BeanUtils的主要功能都在这个包里实现ã€?span lang="EN-US">

    下面分别介绍几个主要的工å…ïL±»åQ?/span>

2.1.BeanUtil

1、首先,我先定义一ä¸?/span>JavaBeanä½œäØ“ä¹‹åŽä¾‹å­çš„æ“ä½œå¯¹è±¡ã€?/span>

    public class Company

    {

      private String name;

      private HashMap address = new HashMap();

      private String[] otherInfo;

      private ArrayList product;

      private ArrayList employee;

      private HashMap telephone;

 

      public Company(){}

 

      public String getName()

      {

        return name;

      }

      public void setName(String name)

      {

        this.name = name;

      }

 

      public String getAddress(String type)

      {

        return address.get(type).toString();

      }

      public void setAddress(String type, String address)

      {

        this.address.put(type,address);

      }

 

      public String[] getOtherInfo()

      {

        return otherInfo;

      }

      public void setOtherInfo(String[] otherInfo)

      {

        this.otherInfo = otherInfo;

      }

 

      public ArrayList getProduct()

      {

        return product;

      }

      public void setProduct(ArrayList product)

      {

        this.product = product;

      }

 

      public ArrayList getEmployee()

      {

        return employee;

      }

      public void setEmployee(ArrayList employee)

      {

        this.employee = employee;

      }

 

      public HashMap getTelephone()

      {

        return telephone;

      }

      public void setTelephone(HashMap telephone)

      {

        this.telephone = telephone;

      }

    }

2ã€?/span>BeanUtils可以直接getå’?/span>set一个属性的倹{€‚它?y¨­u)?/span>property分成3¿Uç±»åž‹ï¼š

       Simple——简单类型,�/span>Stirng�/span>Int…�/span>

       Indexed——烦引类型,�/span>数组�/span>arrayList…�/span>

       Maped——这个不用说也该知道åQŒå°±æ˜¯æŒ‡Map啦,比如HashMap…â€?/span>

       讉K—®ä¸åŒ¾cÕdž‹çš„æ•°æ®å¯ä»¥ç›´æŽ¥è°ƒç”¨å‡½æ•?/span>getPropertyå’?/span>setProperty。它们都只有2个参敎ͼŒ½W¬ä¸€ä¸ªæ˜¯JavaBean对象åQŒç¬¬äºŒä¸ªæ˜¯è¦æ“ä½œçš„属性名ã€?/span>

Company c = new Company();

c.setName("Simple");

 

对于Simple¾cÕdž‹åQŒå‚æ•îCºŒç›´æŽ¥æ˜¯å±žæ€§åå›_¯

//Simple

    System.out.println(BeanUtils.getProperty(c, "name"));

    对于Map¾cÕdž‹åQŒåˆ™éœ€è¦ä»¥â€œå±žæ€§ååQ?/span>keyå€û|¼‰â€çš„形式

//Map

    System.out.println(BeanUtils.getProperty(c, "address (A2)"));

    HashMap am = new HashMap();

    am.put("1","234-222-1222211");

    am.put("2","021-086-1232323");

    BeanUtils.setProperty(c,"telephone",am);

    System.out.println(BeanUtils.getProperty(c, "telephone (2)"));

    对于IndexedåQŒåˆ™ä¸ºâ€œå±žæ€§å[索引å€?/span>]”,注意˜q™é‡Œå¯¹äºŽArrayList和数¾l„都可以用一æ ïLš„æ–¹å¼˜q›è¡Œæ“ä½œã€?/span>

//index

    System.out.println(BeanUtils.getProperty(c, "otherInfo[2]"));

    BeanUtils.setProperty(c, "product[1]", "NOTES SERVER");

    System.out.println(BeanUtils.getProperty(c, "product[1]"));

 

       当然˜q?/span>3¿Uç±»ä¹Ÿå¯ä»¥ç»„合ä‹É用啦åQ?/span>

    //nest

    System.out.println(BeanUtils.getProperty(c, "employee[1].name"));

 

3、此外,˜q˜æœ‰ä¸€ä¸ªå¾ˆé‡è¦çš„æ–¹æ³?/span>copyPropertyåQŒå¯ä»¥ç›´æŽ¥è¿›è¡?/span>Bean之间çš?/span>cloneã€?/span>

       Company c2 = new Company();

        BeanUtils.copyProperties(c2, c);

       但是˜q™ç§copy都是‹¹…拷贝,复制后的2ä¸?/span>Bean的同一个属性可能拥有同一个对象的refåQŒè¿™ä¸ªåœ¨ä½¿ç”¨æ—¶è¦ž®å¿ƒåQŒç‰¹åˆ«æ˜¯å¯¹äºŽå±žæ€§äؓ自定义类的情å†üc€?/span>

4、最后还æœ?/span>populateåQŒå®ƒç”¨äºŽž®†ä¸€ä¸?/span>map的值填充到一ä¸?/span>bean中,其函数原型如下:

public void populate(java.lang.Object bean,

                java.util.Map properties)

              throws java.lang.IllegalAccessException,

                     java.lang.reflect.InvocationTargetException

åœ?/span>struts中这个函数被用于ä»?/span>http request中取得参数添加到FormBeanåQŒç›®å‰å¥½åƒæˆ‘也没有看到这个函数还有什么其他的用途?åQä»¥åŽæƒ³åˆ°å†è¯´å§åQ?/span>P

 

2.2.LazyDynaBean

       它实çŽîC¸€ä¸ªåŠ¨æ€çš„BeanåQŒå¯ä»¥ç›´æŽ¥å¾€é‡Œé¢åŠ å…¥å±žæ€§ï¼Œä½œäØ“ä¸€ä¸?/span>JavaBean一样ä‹É用,也可以用上面çš?/span>BeanUtilsæˆ?/span>get/setæ–ÒŽ(gu¨©)³•˜q›è¡Œæ“ä½œåQŒè€Œä¸ç”¨äº‹å…ˆå®šä¹‰ä¸€ä¸ªæ ‡å‡†çš„JavaBean¾cÕd•¦åQšï¼‰

è®°å¾—åœ?/span>J2ee设计模式中有一¿U?/span>Value Object的模式,用于åœ?/span>MVC各层之间传递数据,避免直接传递大业务对象引è“v的性能问题åQŒäؓ了避免在™å¹ç›®ä¸­å‡ºçŽ°å¾ˆå¤?/span>Bean¾c»ï¼Œåœ¨ä¹¦ä¸­æä¾›äº†ä¸€ä¸ªåЍæ€?/span>Value Object的实玎ͼˆé€šè¿‡æ‰©å±•MapåQ‰ã€‚è¿™é‡?/span>LazyDynaBean则可以作ä¸ÞZ¸€¿Uæ›´åŠ æˆç†Ÿã€ç¨³å®šçš„å®žçŽ°æ¥ä‹É用。呵呵,原来曾打½Ž—自己写一个类似的value object¾cȝš„åQŒçŽ°åœ¨çœ‹æ¥å¯ä»¥ç›´æŽ¥ç”¨˜q™ä¸ªå•¦ï¼šP

       ­a€å½’正传,LazyBean的确提供了一个很不错çš?/span>DynaBean的实现。而且ž®±åƒå®ƒçš„名字中表˜q°çš„那样åQŒå®ƒçš„ç¡®æ˜¯äØ“æˆ‘è¿™æ ïLš„æ‡’äh考虑的很周到åQŒç”¨èµäh¥å‡ ä¹Žä¸éœ€è¦å†™ä»€ä¹ˆå¤šä½™çš„代码^_^åQŒä¸‹é¢å°±çœ‹çœ‹ä½¿ç”¨çš„例子吧åQ?/span>

         //˜q™é‡Œä½¿ç”¨LazyDynaMapåQŒå®ƒæ˜?/span>LazyBean的一个轻量çñ”实现

      LazyDynaMap dynaBean1 = new LazyDynaMap();

 

      dynaBean1.set("foo", "bar");                  // simple

      dynaBean1.set("customer", "title", "Mr");        // mapped

      dynaBean1.set("address", 0, "address1");         // indexed

      System.out.println(dynaBean1.get("address",0));

 

      Map myMap = dynaBean1.getMap();           // retrieve the Map

      System.out.println(myMap.toString());

       上面的例子可以看刎ͼŒå®ƒå¯ä»¥åœ¨set时自动增åŠ?/span>beançš?/span>propertyåQˆæ—¢èµ‹å€¼çš„同时增加Bean中的propertyåQ‰ï¼ŒåŒæ—¶ä¹Ÿæ”¯æŒ?/span>3中类型的propertyåQŒåƈä¸?/span>LazyDynaMap˜q˜å¯ä»¥å¯¼å‡ÞZØ“mapã€?/span>

       对于˜q™ä¸ª¾c»è¿˜æœ‰ä¸¤ä¸ªé‡è¦çš„Field要注意:

       returnnull——指定在getæ–ÒŽ(gu¨©)³•使用了一个没有定义过çš?/span>propertyæ—Óž¼ŒDynaBean的行为ã€?/span>

         //取的字段的信�/span>

      dynaBean1.setReturnNull(true);//è®¾äØ“ture。若Bean中没有此字段åQŒè¿”å›?/span>null

                                //默认ä¸?/span>false。若Bean中没有此字段åQŒè‡ªåŠ¨å¢žåŠ ä¸€ä¸ªï¼šåQ?/span>

      System.out.println(dynaBean1.get("aaa"));//此时˜q”回null

       Restricted——指定是否允许改变这�/span>bean�/span>property�/span>

//MutableDynaClass.setRestrictedè®¾äØ“true后,字段不可再增删和修改.

      //默认ä¸?/span>falseåQŒå…è®¸å¢žåˆ å’Œä¿®æ”¹

      dynaBean1.setRestricted(true);

      dynaBean1.set("test","error");//˜q™é‡Œä¼šå‡ºé”™ï¼

       通过讄¡½®˜q™ä¸¤ä¸ªå±žæ€§ï¼Œå¯ä»¥é˜²æ­¢æ„å¤–修改DynaBeançš?/span>property。在设计架构æ—Óž¼Œä½ å¯ä»¥åœ¨åŽå°ä»Žæ•°æ®è¡¨æˆ?/span>xmlæ–‡äšg自动产生DynaBeanåQŒåœ¨ä¼ åˆ°æŽ§åˆ¶å±‚和表示层之前设¾|®ä¸Š˜q°å±žæ€§ä‹Éå…?/span>Bean¾l“æž„ä¸å…è®æ€¿®æ”¹ï¼Œå¦‚æ­¤ž®×ƒ¸å¯èƒ½æ— æ„ä¸­ä¿®æ”?/span>Bean包含的属性……这æ äh—¢å¯ä»¥äº«ç”¨å®ƒçš„便利åQŒæœ‰å¯ä»¥é˜²æ­¢ç”±æ­¤å¼•入的错误可能,设计者实在深得偷懒的¾_ùN«“啊!åQï¼åQï¼

 

3.   其他

3.1.BeanUtilså’?/span>PropertyUtils

       ˜q™ä¸¤ä¸ªç±»å‡ ä¹Žæœ‰ä¸€æ‘怸€æ ïLš„功能åQŒå”¯ä¸€çš„区别是åQ?/span>BeanUtils在对Bean赋值是会进行类型è{化。ä‹D例来说也ž®±æ˜¯åœ?/span>copyProperty时只要属性名相同åQŒå°±½Ž—类型不同,BeanUtils也可以进è¡?/span>copyåQ›è€?/span>PropertyBean则可能会报错åQï¼

       针对上面的例子,新徏一ä¸?/span>Company2的类åQŒå…¶ä¸­ä»£ç ä¸ŽCompanyä¸€æ øP¼Œåªæ˜¯ž®?/span>otherinfoä»?/span>String[]æ”¹äØ“Stringã€?/span>

      Company c = init();

      Company2 c2 = new Company2();

     

      BeanUtils.copyProperties(c2,c);

//      PropertyUtils.copyProperties(c2,c); ˜q™å¥ä¼šæŠ¥é”™ï¼åQ?/span>

      System.out.println(c2.getOtherInfo());

    当然2ä¸?/span>Bean之间的同名属性的¾cÕdž‹å¿…须是可以è{化的åQŒå¦åˆ™ç”¨BeanUtils一样会报错ã€?/span>

       若实çŽîCº†org.apache.commons.beanutils.Converter接口则可以自定义¾cÕdž‹ä¹‹é—´çš„è{化ã€?/span>

ç”׃ºŽä¸åš¾cÕdž‹è½¬åŒ–åQŒç”¨PropertyUtils在速度上会有很大提高!

此外åQŒä¸ä½œç±»åž‹è{化还有一个好处,如下面的代码åQ?/span>

      //test data type convert

//      ArrayList a1 = BeanUtils.getProperty(c,"product"); //BeanUtils˜q”回的是String

      System.out.println("--" + BeanUtils.getProperty(c,"product"));     //å–å‡ºåŽç›´æŽ¥è¢«è½¬äØ“String

      ArrayList a = (ArrayList)PropertyUtils.getProperty(c,"product");//PropertyUtils˜q”回的是Object

      System.out.println("--" + a.get(1));

ç”?/span>BeanUtils无法˜q”回一个对象(除非自己写一ä¸?/span>ConverteråQ‰ï¼Œå®ƒä¼šè‡ªåЍ˜q›è¡Œ¾cÕdž‹è½¬åŒ–åQŒç„¶åŽè¿”å›?/span>String。对于想˜q”回java¾cÀLˆ–自定义类的话åQŒè¿˜æ˜¯ä¸è¦è€å®ƒå¤§é©¾è½¬åŒ–了ã€?/span>

 

3.2.Utils¾c?/font>

       所有的XXXUtils¾c»éƒ½æä¾›çš„æ˜¯é™æ€æ–¹æ³•,可以直接调用åQŒå…¶ä¸»è¦å®žçŽ°éƒ½åœ¨ç›¸åº”çš?/span>XXXUtilsBean中:

BeanUtils     —�span lang="EN-US">> BeanUtilsBean

       ConvertUtils  —�span lang="EN-US">> ConvertUtilsBean

    PropertyUtils —�span lang="EN-US">> PropertyUtilsBean

 

其意思看¾cÕdä¹Ÿåº”该知道的差不多了åQŒæˆ‘ž®×ƒ¸å†åºŸè¯å•¦åQå½“然你也可以直接调用那äº?/span>XXXUtilsBeanåQŒåŠŸèƒ½éƒ½ä¸€æ øP¼



]]>
Gaijin Studio Documentationhttp://www.aygfsteel.com/jiandeh/articles/42543.htmlLORD BLOGLORD BLOGSat, 22 Apr 2006 13:28:00 GMThttp://www.aygfsteel.com/jiandeh/articles/42543.htmlhttp://www.aygfsteel.com/jiandeh/comments/42543.htmlhttp://www.aygfsteel.com/jiandeh/articles/42543.html#Feedback0http://www.aygfsteel.com/jiandeh/comments/commentRss/42543.htmlhttp://www.aygfsteel.com/jiandeh/services/trackbacks/42543.html阅读全文

]]>
Nitrox使用½W”è®°http://www.aygfsteel.com/jiandeh/articles/42532.htmlLORD BLOGLORD BLOGSat, 22 Apr 2006 12:40:00 GMThttp://www.aygfsteel.com/jiandeh/articles/42532.htmlhttp://www.aygfsteel.com/jiandeh/comments/42532.htmlhttp://www.aygfsteel.com/jiandeh/articles/42532.html#Feedback0http://www.aygfsteel.com/jiandeh/comments/commentRss/42532.htmlhttp://www.aygfsteel.com/jiandeh/services/trackbacks/42532.html 1ã€?span style="FONT: 7pt 'Times New Roman'">  如何讄¡½®è°ƒè¯•JSP环境åQ??xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>

AåQ‰ã€è®¾¾|®æœåŠ¡å™¨é…ç½®é€‰é¡¹å¡ï¼Œ Window > Preferences > NitroX > Server Configuration > Edit Server Configuration > Configuration TabåQŒå¦‚图:


BåQ‰ã€è¿è¡ŒDEBUGåQŒåˆ™åœ¨TOMCAT5.0çš„\conf\Catalina\localhost\目录下äñ”生一个ROOT.xmlæ–‡äšgåQŒæ‹·è´ROOT.xmlæ–‡äšg内容åQˆæœ‰å…Œ™™šæ‹Ÿç›®å½•设¾|®ï¼‰åˆ°\conf\下的Server.xmlæ–‡äšg中,格式如下åQ?o:p>

<Context debug="0" docBase="/d:/eclipse/workspace/MyProject/web/" path=""

reloadable="true" workDir="C:\Tomcat 5.0\work\nitrox_dbg\MyProject">

<Loader className="org.apache.catalina.loader.DevLoader" reloadable="true" debug="0"/>

     <Resource name="jdbc/OracleDS" auth="Container" type="javax.sql.DataSource"/>

     <ResourceParams name="jdbc/OracleDS">

     �o:p>

</Context>

注:特别是调试èµ\径的讄¡½®åQŒç³»¾lŸä¼šåœ?/span> ROOT.xmlä¸?/span> 自动生成åQŒç›´æŽ¥æ‹·è´ç›¸å…›_†…容过åŽÕd³å¯ï¼Œ

�span lang="EN-US">workDir="C:\Tomcat 5.0\work\nitrox_dbg\MyProject"



]]>
AppContextManager装蝲Springhttp://www.aygfsteel.com/jiandeh/articles/42523.htmlLORD BLOGLORD BLOGSat, 22 Apr 2006 12:24:00 GMThttp://www.aygfsteel.com/jiandeh/articles/42523.htmlhttp://www.aygfsteel.com/jiandeh/comments/42523.htmlhttp://www.aygfsteel.com/jiandeh/articles/42523.html#Feedback0http://www.aygfsteel.com/jiandeh/comments/commentRss/42523.htmlhttp://www.aygfsteel.com/jiandeh/services/trackbacks/42523.htmlpackage com.hsit.common.spring;

import org.springframework.beans.factory.access.BeanFactoryReference;
import org.springframework.beans.factory.access.SingletonBeanFactoryLocator;
import org.springframework.beans.factory.access.BeanFactoryLocator;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;

public class AppContextManager {
  private AppContextManager() {
  }

  private static AppBeanFactory m_appBeanFactory = null;

  /**
   * æ ÒŽ(gu¨©)®BeanName获得对应的类工厂[不通过PlugInæ–ÒŽ(gu¨©)³•实现] 更新日志åQ?lt;br>
   * 日期 作�内容<br>
   * =================================================================<br>
   * 2004-08-26 黄徏�lt;br>
   * ①创建WEB-INF/classes/下beanRefFactory.xml<br>
   * â‘¡beanRefFactory.xml配置相关Contextæ–‡äšg <bean id="beanFactory" class=...><br>
   * ③web.xml配置路径为WEB-INF/classes/... <br>
   * â‘£struts-config.xmlæ–‡äšgåŽÀLމ[注释]相关PlugIn<br>
   * <plug-in className=" com.hsit.common.spring.InitAppContext "/>
   * =================================================================<br>
   *
   * @param beanName
   *          String Bean配置体系的ID名如<bean id="beanCompany" ...>
   * @return Object æ ÒŽ(gu¨©)®BeanName获得对应的类工厂
   */
  public static Object getBean(String beanName) {
    BeanFactoryLocator bfLocator = SingletonBeanFactoryLocator.getInstance();
    BeanFactoryReference bf = bfLocator.useBeanFactory("beanFactory");
    return bf.getFactory().getBean(beanName);
  }

  public static void setBeanFactory(AppBeanFactory appBeanFactory) {
    m_appBeanFactory = appBeanFactory;
  }

  public static AppBeanFactory getBeanFactory() {
    return m_appBeanFactory;
  }

}



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º °²ÑôÊÐ| Äþ¹úÊÐ| äØÌ¶ÏØ| ÁÙ·ÚÊÐ| Áú¿ÚÊÐ| ºÏɽÊÐ| ±±°²ÊÐ| ²´Í·ÊÐ| Ì«¿µÏØ| Üþ¾­ÏØ| Çú¸·ÊÐ| ¶î¶û¹ÅÄÉÊÐ| ƽºþÊÐ| ÷ÖÝÊÐ| ×ñÒåÏØ| ÄþÁêÏØ| ¿ª·âÊÐ| äųØÏØ| »¸Ì¨ÏØ| Ë«Á÷ÏØ| ÄÇÇúÏØ| Îå¼ÒÇþÊÐ| °¢ÈÙÆì| Íß·¿µêÊÐ| ²ÊƱ| Çíº£ÊÐ| ¾®¸ÔɽÊÐ| ËÕÄáÌØÓÒÆì| ÀÖÖÁÏØ| ͨÖÝÊÐ| ·ï¸ÔÏØ| ÐÂÆ½| ¹±¸ÂÏØ| ²©¿Í| ƽÑôÏØ| ÖÐÄ²ÏØ| ±ö´¨ÏØ| äÒÖÐÏØ| ÎåºÓÏØ| µæ½­ÏØ| ÒÁÎáÏØ|