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

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

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

    一個(gè)SWT應(yīng)用程序的基本組成部分為顯示界面(Display)、命令界面(Shell,使命令進(jìn)入并使運(yùn)行初始化)和窗口部件(Widgets)。Display負(fù)責(zé)管理事件循環(huán)和控制UI線程和其他線程之間的通訊。Shell是應(yīng)用程序中被操作系統(tǒng)窗口管理器管理的窗口。每個(gè)SWT應(yīng)用程序至少需要一個(gè)Display和大于等于1個(gè)的Shell實(shí)例。


    圖1:從不同的角度看SWT應(yīng)用程序


      圖1從不同的角度展示了SWT應(yīng)用程序。左側(cè)的圖是一個(gè)簡化的UI對(duì)象的繼承圖。中間的圖展示了UI對(duì)象的容器結(jié)構(gòu)(containment structure)。右側(cè)的圖則是創(chuàng)建后的UI外觀。

      如果一個(gè)應(yīng)用程序使用了多個(gè)線程,那么每個(gè)線程都使用的是Display對(duì)象分配給它自己的實(shí)例。程序員可以使用靜態(tài)方法Display.getCurent()來得到Display對(duì)象的當(dāng)前活動(dòng)的實(shí)例。

      Shell用于在特定的操作系統(tǒng)中表現(xiàn)窗口。Shell可以最大化、最小化或正常化。Shell有兩種類型。第1種是高層shell,它是Display的子窗口,同時(shí)它也是一個(gè)主窗口。第2類是對(duì)話shell,這種shell要依賴于其他的shell窗口存在。shell窗口最終成為上述那種類型,要看在創(chuàng)建shell時(shí)傳遞給shell構(gòu)造函數(shù)的是什么風(fēng)格位(style bits)。一個(gè)shell的默認(rèn)值是DialogShell。也就是說,如果不帶參數(shù),那默認(rèn)就是一個(gè)對(duì)話shell。而如果給參數(shù)賦予了一個(gè)Display對(duì)象,則該shell將是一個(gè)高層shell。

      一些窗口部件的屬性必須在創(chuàng)建它們的初期就要被設(shè)置。這些窗口部件的屬性就是前面所說的風(fēng)格位(style bits)。在SWT的類中,風(fēng)格位被定義為常數(shù)。例如,Button button = new Button( shell, <styleBits> )。可以使用或(OR)操作符“|”來設(shè)置多個(gè)風(fēng)格位。例如,如果想設(shè)置一個(gè)帶邊界的壓下按鈕,需要傳遞SWT.PUSH | SWT.BORDER作為風(fēng)格位參數(shù)。

     

    本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/bnlovebn/archive/2011/06/14/6543693.aspx

    posted @ 2011-06-14 14:33 重歸本壘(Bing) 閱讀(372) | 評(píng)論 (0)編輯 收藏
     

    找到AppData\Local\Genuitec\Common\configuration\com.genuitec.pulse2.client.common.provisioning中的文件rmb-2042360.latest.snapshot,在文件rmb-2042360.latest.snapshot中找到你要?jiǎng)h除的插件名。把這行刪除即可。

    posted @ 2011-06-14 11:32 重歸本壘(Bing) 閱讀(3663) | 評(píng)論 (1)編輯 收藏
     
    最近orcale數(shù)據(jù)只有一臺(tái)可以服務(wù),導(dǎo)致hibernate 連接數(shù)據(jù)庫每個(gè)13分鐘就會(huì)報(bào)“APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks”的錯(cuò)誤.
    原因是 hibernate 使用c3p0連接orcale數(shù)據(jù)后不會(huì)釋放 , c3p0的最大連接數(shù)為100,但顯然c3p0有Bug,導(dǎo)致數(shù)據(jù)庫連接池不夠用,導(dǎo)致進(jìn)程鎖死。
    后換Proxool后,觀察正常。

    下面轉(zhuǎn)引其它網(wǎng)友文章說明c3p0 、 Proxool、 dbcp  的區(qū)別
    1<!-- JDBC驅(qū)動(dòng)程序 -->   
    2<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</property> <!-- 數(shù)據(jù)庫用戶名 -->   
    3<property name="connection.username">root</property> <!-- 數(shù)據(jù)庫密碼 -->

    上面的一段配置,在c3p0dbcp中,都是必需的,因?yàn)閔ibernate會(huì)根據(jù)上述的配置來生成connections,再交給c3p0dbcp管理.

    1 C3P0

    只需在hibernate.cfg.xml中加入
    1<property name="c3p0.min_size">5</property>   
    2<property name="c3p0.max_size">30</property>   
    3<property name="c3p0.time_out">1800</property>   
    4<property name="c3p0.max_statement">50</property>   
    5

    還有在classespath中加入c3p0-0.8.4.5.jar


    2 dbcp

    在hibernate.cfg.xml中加入
     1<property name="dbcp.maxActive">100</property>   
     2<property name="dbcp.whenExhaustedAction">1</property>   
     3<property name="dbcp.maxWait">60000</property>   
     4<property name="dbcp.maxIdle">10</property>   
     5   
     6<property name="dbcp.ps.maxActive">100</property>   
     7<property name="dbcp.ps.whenExhaustedAction">1</property>   
     8<property name="dbcp.ps.maxWait">60000</property>   
     9<property name="dbcp.ps.maxIdle">10</property>  
    10

    還有在classespath中加入commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar.

    3 proxool

    由于數(shù)據(jù)庫connection在較長時(shí)間沒有訪問下會(huì)自動(dòng)斷開連接,導(dǎo)致瀏覽出錯(cuò),增加proxool作為數(shù)據(jù)庫pool。它有自動(dòng)連接功能。
    1)、從http://proxool.sourceforge...下載proxool,釋放proxool.jar到WEB-INF/lib

    2)、在hibernate.cfg.xml中增加:
    1<property name="hibernate.proxool.pool_alias">dbpool</property>   
    2<property name="hibernate.proxool.xml">proxool.xml</property>   
    3<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>  
    4

    3)、在與hibernate.cfg.xml同級(jí)目錄(src根目錄下)增加proxool.xml文件:
     1<?xml version="1.0" encoding="utf-8"?>   
     2<!-- the proxool configuration can be embedded within your own application's.    
     3 Anything outside the "proxool" tag is ignored. -->   
     4<something-else-entirely>   
     5 <proxool>   
     6   <alias>dbpool</alias>   
     7   <!--proxool只能管理由自己產(chǎn)生的連接-->   
     8   <driver-url>   
     9     jdbc:mysql://127.0.0.1:3306/wlsh?characterEncoding=GBK&useUnicode=true&autoReconnect=true     </driver-url>   
    10   <driver-class>com.mysql.jdbc.Driver</driver-class>   
    11   <driver-properties>   
    12       <property name="user" value="root" />   
    13       <property name="password" value="123456" />   
    14   </driver-properties>   
    15   <!-- proxool自動(dòng)偵察各個(gè)連接狀態(tài)的時(shí)間間隔(毫秒),偵察到空閑的連接就馬上回收,超時(shí)的銷毀-->   
    16   <house-keeping-sleep-time>90000</house-keeping-sleep-time>   
    17   <!-- 最少保持的空閑連接數(shù)-->   
    18   <prototype-count>5</prototype-count>   
    19   <!-- 允許最大連接數(shù),超過了這個(gè)連接,再有請(qǐng)求時(shí),就排在隊(duì)列中等候,最大的等待請(qǐng)求數(shù)由maximum-new-connections決定-->   
    20   <maximum-connection-count>100</maximum-connection-count>   
    21   <!-- 最小連接數(shù)-->   
    22   <minimum-connection-count>10</minimum-connection-count>   
    23 </proxool>   
    24</something-else-entirely>  
    25

    于在hibernate3.0中,已經(jīng)不再支持dbcp了,hibernate的作者在hibernate.org中,明確指出在實(shí)踐中發(fā)現(xiàn)dbcp有 BUG,在某些種情會(huì)產(chǎn)生很多空連接不能釋放,所以拋棄了對(duì)dbcp的支持。至于c3p0,有評(píng)論說它的算法不是最優(yōu)的,因?yàn)榫W(wǎng)上查資料得知:有網(wǎng)友做了一個(gè)實(shí)驗(yàn),在同一項(xiàng)目中分別用了幾個(gè)常用的連接池,然后測試其性能,發(fā)現(xiàn)c3p0占用資源比較大,效率也不高。所以,基于上述原因,proxool不少行家推薦使用,而且暫時(shí)來說,是負(fù)面評(píng)價(jià)是最少的一個(gè)。在三星中也有項(xiàng)目是用proxool的。從性能和出錯(cuò)率來說,proxool稍微比前兩種好些。C3P0,穩(wěn)定性似乎不錯(cuò),在這方面似乎有很好的口碑。至于性能,應(yīng)該不是最好的,算是中規(guī)中矩的類型。
      Proxool的口碑似乎很好,不大見到負(fù)面的評(píng)價(jià),從官方資料上來看,有許多有用的特性和特點(diǎn),也是許多人推薦的。
    posted @ 2011-06-12 13:51 重歸本壘(Bing) 閱讀(5267) | 評(píng)論 (0)編輯 收藏
     
    1、was6.1基于j2ee1.4。
    2、was6.1ND版中有Edge Components產(chǎn)品。
    3、was6.1各版本都有一些基本的功能。
    posted @ 2010-04-12 10:41 重歸本壘(Bing) 閱讀(313) | 評(píng)論 (0)編輯 收藏
     
         摘要: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html>     <head>         ...  閱讀全文
    posted @ 2008-12-21 02:56 重歸本壘(Bing) 閱讀(3838) | 評(píng)論 (2)編輯 收藏
     
    <span id="spnTime"></span><script language="javascript">
    var http = new XMLHttpRequest;
    http.open(
    "HEAD""."false);
    http.send(
    null);
    var curDate = new Date;
    var offsetTime = curDate - Date.parse(http.getResponseHeader("Date"));
    setInterval(
    function()
    {
        curDate.setTime(
    new Date - offsetTime);
        document.getElementById(
    "spnTime").innerHTML = curDate.toLocaleString();
    }
    1000);
    </script>
    posted @ 2008-09-26 08:42 重歸本壘(Bing) 閱讀(325) | 評(píng)論 (0)編輯 收藏
     

     

    <!-- 把下列代碼加入到head區(qū)內(nèi) -->
    <style>




    #tablist a
    {
    text-decoration
    : none;
    padding
    : 2px 0.2em;
    border
    : 1px solid #778;
    background
    : white;
    }


    #tablist  a:link, #tablist  a:visited
    {
    color
    : navy;
    }


    #tablist  a:hover
    {
    color
    : black;
    background
    : lightyellow;
    border-color
    : navy;
    }


    #tablist  a.current
    {
    background
    : lightyellow;
    }

    </style>


    <!-- 把下列代碼加入到body區(qū)內(nèi) -->
    <label id="tablist">
    <href="http://www.yahoo.com">Yahoo</a>
    <href="http://www.google.com">Google</a>
    <href="http://www.sina.com">退出</a>
    </label>
    posted @ 2008-09-23 11:53 重歸本壘(Bing) 閱讀(249) | 評(píng)論 (0)編輯 收藏
     
    1、源代碼包的安裝    
      gzip   -d   apache_1.3.20.tar.gz   (解壓)    
      tar   xvf   apache_1.3.20.tar   (解包)    
      cd   apache_1.3.20    
      ./configure   (配置)   ----./configure   --help(查看configure選項(xiàng))    
      make   (編譯)    
      make   install   (安裝)    
      make   clean   (卸載)    
       
      注:典型的源代碼包可以這樣安裝,但不都是這樣,如webmin    
      要執(zhí)行其目錄下./setup.sh進(jìn)入交互式配置安裝    
      卸載用uninstall程序    
      具體如果不清楚看要安裝的包下的README文件    
       
      2、RPM包的安裝    
      RPM軟件包的一個(gè)例子:    
      foo-1.0-1.i386.rpm    
      其中包括軟件包的名稱(foo),版本號(hào)(1.0),發(fā)行號(hào)(1),和硬件平臺(tái)(i386)。    
      (1)安裝    
      #   rpm   -ivh   foo-1.0-1.i386.rpm    
      foo    
      #######################    
      A.   軟件包已被安裝    
      #   rpm   -ivh   foo-1.0-1.i386.rpm    
      foo   package   foo-1.0-1   is   already   installed    
      error:   foo-1.0-1.i386.rpm   cannot   be   installed    
      如果你仍舊要安裝該軟件包,你可以在命令行上使用--replacepkgs   選項(xiàng),這將忽略該錯(cuò)誤信息。    
      B.   文件沖突    
      如果要安裝的軟件包中有一個(gè)文件已在安裝其它軟件包時(shí)安裝,會(huì)出現(xiàn)以下錯(cuò)誤信息:    
      #   rpm   -ivh   foo-1.0-1.i386.rpm    
      foo   /usr/bin/foo   conflicts   with   file   from   bar-1.0-1    
      error:   foo-1.0-1.i386.rpm   cannot   be   installed    
      要想讓RPM   忽略該錯(cuò)誤信息,   請(qǐng)使用--replacefiles   命令行選項(xiàng)    
      C.未解決依賴關(guān)系    
      RPM軟件包可能依賴于其它軟件包,   在安裝了特定的軟件包之后才能安裝該軟件包。    
      #   rpm   -ivh   bar-1.0-1.i386.rpm    
      failed   dependencies:    
      foo   is   needed   by   bar-1.0-1    
      你必須安裝完所依賴的軟件包,才能解決這個(gè)問題。如果想強(qiáng)制安裝   (但是,這樣安裝后的軟件包未必能正常運(yùn)行),請(qǐng)使用-nodeps   命令行選項(xiàng)。    
       
      (2)   卸載    
      #   rpm   -e   foo    
      注意:這里使用軟件包的名字foo,而不是軟件包文件的名字“foo-1.0-1.i386.rpm”.    
      如果其它軟件包依賴于你要卸載的軟件包,卸載時(shí)則會(huì)產(chǎn)生錯(cuò)誤信息。如:    
      #   rpm   -e   foo    
      removing   these   packages   would   break   dependencies:    
      foo   is   needed   by   bar-1.0-1    
      要想RPM忽略該錯(cuò)誤信息繼續(xù)卸載的話   (但是,依賴于該軟件包的程序可能無法運(yùn)行),   請(qǐng)使用-nodeps   命令行選項(xiàng)。    
      (3)升級(jí)    
      #   rpm   -Uvh   foo-2.0-1.i386.rpm    
      foo    
      ###############################    
      當(dāng)使用舊版本的軟件包來升級(jí)新版本的軟件時(shí),會(huì)產(chǎn)生以下錯(cuò)誤信息:    
      #   rpm   -Uvh   foo-1.0-1.i386.rpm    
      foo   package   foo-2.0-1   (which   is   newer)   is   already   installed    
      error:   foo-1.0-1.i386.rpm   cannot   be   installed    
      要使RPM   堅(jiān)持這樣“升級(jí)”,可使用--oldpackage   命令行參數(shù)。    
      (4)查詢    
      #   rpm   -q   foo    
      foo-2.0-1    
      軟件包指定選項(xiàng):    
      -a   查詢所有已安裝的軟件包.    
      -f   <file>   將查詢包含有文件<file>的軟件包    
      -p   <packagefile>    
      查詢軟件包文件名為<packagefile>的軟件包    
      信息選擇選項(xiàng):    
      -i   顯示軟件包信息,如描述,   發(fā)行號(hào),   尺寸,   構(gòu)建日期,   安裝日期,   平臺(tái),   以及其它各類信息。    
      -l   顯示軟件包中的文件列表。    
      -s   顯示軟件包中所有文件的狀態(tài)。    
      -d   顯示被標(biāo)注為文檔的文件列表(man   手冊,   info   手冊,   README's,   etc).    
      -c   顯示被標(biāo)注為配置文件的文件列表。這些是要在安裝完畢以后加以定制的文件(sendmail.cf,   passwd,   inittab,   etc)。    
      對(duì)于那些要顯示文件列表的文件,可以增加-v   命令行選項(xiàng)以獲得如同   ls   -l   格式的輸出。    
      (5)驗(yàn)證    
      驗(yàn)證軟件包是通過比較軟件包中安裝的文件和軟件包中的原始文件信息來進(jìn)行的。除了其它一些東西,驗(yàn)證主要是比較文件的尺寸,   MD5   校驗(yàn)碼,   文件權(quán)限,   類型,   屬主和用戶組等。    
      rpm   -V命令用來驗(yàn)證一個(gè)軟件包,如    
      rpm   -V   foo    
      驗(yàn)證包含特定文件的軟件包:    
      rpm   -Vf   /bin/vi    
      驗(yàn)證所有已安裝的軟件包:    
      rpm   -Va    
      根據(jù)一個(gè)RPM來驗(yàn)證某個(gè)軟件包:    
      rpm   -Vp   foo-1.0-1.i386.rpm    
      如果你擔(dān)心RPM數(shù)據(jù)庫已被破壞,就可以使用這種方式。如果一切校驗(yàn)均正常將不會(huì)產(chǎn)生任何輸出。如果有不一致的地方,就會(huì)顯示出來。    
      輸出格式是8位長字符串,c   用以指配置文件,接著是文件名.   8位字符的每一個(gè)用以表示文件與RPM數(shù)據(jù)庫中一種屬性的比較結(jié)果。“.”   (點(diǎn))表示測試通過。    
      以下字符表示某種測試的失敗:    
      5   MD5   校驗(yàn)碼    
      S   文件尺寸    
      L   符號(hào)連接    
      T   文件修改日期    
      D   設(shè)備    
      U   用戶    
      G   用戶組    
      M   模式e   (包括權(quán)限和文件類型)    
      如果有信息輸出,應(yīng)當(dāng)認(rèn)真加以考慮,是刪除,重新安裝,還是修正出現(xiàn)的問題。    
      (6)RPM應(yīng)用的幾個(gè)例子    
      A.   如你誤刪了一些文件,   但是不能肯定到底刪除了哪些文件。如果你想驗(yàn)證一下整個(gè)系統(tǒng)看看都丟失了哪些文件的話,可以鍵入:    
      rpm   –Va    
      B.若是一些文件丟失了或已被損壞,   就可以重新安裝或先卸載再安裝該軟件包。如果碰到了一個(gè)自己不認(rèn)識(shí)的文件,要想查處它屬于哪個(gè)軟件包,可以輸入以下命令:    
      rpm   -qf   /usr/X11R6/bin/xjewel    
      而輸出的結(jié)果會(huì)是:    
      xjewel-1.6-1    
      C.   如果發(fā)生綜合以上兩個(gè)例子的情況,如文/usr/bin/paste出了問題。你想驗(yàn)證一下?lián)碛性撐募能浖捎植恢儡浖拿郑@時(shí)可以簡單的鍵入:    
      rpm   -Vf   /usr/bin/paste    
      這樣相應(yīng)的軟件包就會(huì)被驗(yàn)證。    
      D.   如果你想了解一個(gè)正在使用的程序的詳細(xì)信息,可以鍵入如下命令來獲得擁有該程序的軟件包中的文檔信息:    
      rpm   -qdf   /usr/bin/ispell    
      輸出結(jié)果為:    
      /usr/man/man4/ispell.4    
      /usr/man/man4/english.4    
      …………………………………………………………    
       
      E.   如果你發(fā)現(xiàn)了一個(gè)新的koules   RPM,但是不知道它是什么東西,可以鍵入如下命令:    
      rpm   -qip   koules-1.2-2.i386.rpm    
      F.   現(xiàn)在你想了解koules   RPM   所安裝的文件。可以鍵入:    
      rpm   -qlp   koules-1.2-2.i386.rpm    
      圖形管理工具:kpackage    
       
      3、shell或java腳本安裝    
      基于圖形界面的安裝,一般基于SHELL或Java語言編寫,主要應(yīng)用于一些辦公軟件和制圖軟件及安裝程序,如staroffice、oracle的安裝,很容易,和windows一樣     
       
    posted @ 2008-06-13 17:47 重歸本壘(Bing) 閱讀(9203) | 評(píng)論 (0)編輯 收藏
     
    Struts2+spring2時(shí)應(yīng)注意action的單實(shí)例問題
    注意要設(shè)置,action bean 的 scope 的值。因?yàn)閟pring的bean默認(rèn)為單實(shí)例,故一定要設(shè)scope的值但不能為singleton。
    posted @ 2008-06-04 15:25 重歸本壘(Bing) 閱讀(706) | 評(píng)論 (0)編輯 收藏
     

    如何使用spring的作用域:

    <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>

    這里的scope就是用來配置spring bean的作用域,它標(biāo)識(shí)bean的作用域。

    在spring2.0之前bean只有2種作用域即:singleton(單例)、non-singleton(也稱prototype), Spring2.0以后,增加了session、request、global session三種專用于Web應(yīng)用程序上下文的Bean。因此,默認(rèn)情況下Spring2.0現(xiàn)在有五種類型的Bean。當(dāng)然,Spring2.0對(duì)Bean的類型的設(shè)計(jì)進(jìn)行了重構(gòu),并設(shè)計(jì)出靈活的Bean類型支持,理論上可以有無數(shù)多種類型的Bean,用戶可以根據(jù)自己的需要,增加新的Bean類型,滿足實(shí)際應(yīng)用需求。

    1、singleton作用域

    當(dāng)一個(gè)bean的作用域設(shè)置為singleton, 那么Spring IOC容器中只會(huì)存在一個(gè)共享的bean實(shí)例,并且所有對(duì)bean的請(qǐng)求,只要id與該bean定義相匹配,則只會(huì)返回bean的同一實(shí)例。換言之,當(dāng)把一個(gè)bean定義設(shè)置為singleton作用域時(shí),Spring IOC容器只會(huì)創(chuàng)建該bean定義的唯一實(shí)例。這個(gè)單一實(shí)例會(huì)被存儲(chǔ)到單例緩存(singleton cache)中,并且所有針對(duì)該bean的后續(xù)請(qǐng)求和引用都將返回被緩存的對(duì)象實(shí)例,這里要注意的是singleton作用域和GOF設(shè)計(jì)模式中的單例是完全不同的,單例設(shè)計(jì)模式表示一個(gè)ClassLoader中只有一個(gè)class存在,而這里的singleton則表示一個(gè)容器對(duì)應(yīng)一個(gè)bean,也就是說當(dāng)一個(gè)bean被標(biāo)識(shí)為singleton時(shí)候,spring的IOC容器中只會(huì)存在一個(gè)該bean。

    配置實(shí)例:

    <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>

    或者

    <bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>

    2、prototype

    prototype作用域部署的bean,每一次請(qǐng)求(將其注入到另一個(gè)bean中,或者以程序的方式調(diào)用容器的

    getBean()

    方法)都會(huì)產(chǎn)生一個(gè)新的bean實(shí)例,相當(dāng)與一個(gè)new的操作,對(duì)于prototype作用域的bean,有一點(diǎn)非常重要,那就是Spring不能對(duì)一個(gè)prototype bean的整個(gè)生命周期負(fù)責(zé),容器在初始化、配置、裝飾或者是裝配完一個(gè)prototype實(shí)例后,將它交給客戶端,隨后就對(duì)該prototype實(shí)例不聞不問了。不管何種作用域,容器都會(huì)調(diào)用所有對(duì)象的初始化生命周期回調(diào)方法,而對(duì)prototype而言,任何配置好的析構(gòu)生命周期回調(diào)方法都將不會(huì)被調(diào)用。清除prototype作用域的對(duì)象并釋放任何prototype bean所持有的昂貴資源,都是客戶端代碼的職責(zé)。(讓Spring容器釋放被singleton作用域bean占用資源的一種可行方式是,通過使用bean的后置處理器,該處理器持有要被清除的bean的引用。)

    配置實(shí)例:

    <bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/>

    或者

    <beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/>

    3、request

    request表示該針對(duì)每一次HTTP請(qǐng)求都會(huì)產(chǎn)生一個(gè)新的bean,同時(shí)該bean僅在當(dāng)前HTTP request內(nèi)有效,配置實(shí)例:

    request、session、global session使用的時(shí)候首先要在初始化web的web.xml中做如下配置:

    如果你使用的是Servlet 2.4及以上的web容器,那么你僅需要在web應(yīng)用的XML聲明文件web.xml中增加下述ContextListener即可:

     

     

    <web-app>



    <listener>

    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

    </listener>



    </web-app>

    <!--
    ,如果是Servlet2.4以前的web容器,那么你要使用一個(gè)javax.servlet.Filter的實(shí)現(xiàn):
    -->
    <web-app>

    ..

    <filter>

       
    <filter-name>requestContextFilter</filter-name> 

        
    <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>

    </filter> 

    <filter-mapping>

        
    <filter-name>requestContextFilter</filter-name> 

        
    <url-pattern>/*</url-pattern>

    </filter-mapping>



    </web-app>

     

    接著既可以配置bean的作用域了:

    <bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>

    4、session

    session作用域表示該針對(duì)每一次HTTP請(qǐng)求都會(huì)產(chǎn)生一個(gè)新的bean,同時(shí)該bean僅在當(dāng)前HTTP session內(nèi)有效,配置實(shí)例:

    配置實(shí)例:

    和request配置實(shí)例的前提一樣,配置好web啟動(dòng)文件就可以如下配置:

    <bean id="role" class="spring.chapter2.maryGame.Role" scope="session"/>

    5、global session

    global session作用域類似于標(biāo)準(zhǔn)的HTTP Session作用域,不過它僅僅在基于portlet的web應(yīng)用中才有意義。Portlet規(guī)范定義了全局Session的概念,它被所有構(gòu)成某個(gè)portlet web應(yīng)用的各種不同的portlet所共享。在global session作用域中定義的bean被限定于全局portlet Session的生命周期范圍內(nèi)。如果你在web中使用global session作用域來標(biāo)識(shí)bean,那么web會(huì)自動(dòng)當(dāng)成session類型來使用。

    配置實(shí)例:

    和request配置實(shí)例的前提一樣,配置好web啟動(dòng)文件就可以如下配置:

    <bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>

    6、自定義bean裝配作用域

    在spring2.0中作用域是可以任意擴(kuò)展的,你可以自定義作用域,甚至你也可以重新定義已有的作用域(但是你不能覆蓋singleton和prototype),spring的作用域由接口org.springframework.beans.factory.config.Scope來定義,自定義自己的作用域只要實(shí)現(xiàn)該接口即可,下面給個(gè)實(shí)例:

    我們建立一個(gè)線程的scope,該scope在表示一個(gè)線程中有效,代碼如下:

     

    publicclass MyScope implements Scope 

        privatefinal ThreadLocal threadScope 
    = new ThreadLocal() {

              
    protected Object initialValue() {

                returnnew HashMap(); 

              }
     

        }


        
    public Object get(String name, ObjectFactory objectFactory) 

            Map scope 
    = (Map) threadScope.get(); 

            Object object 
    = scope.get(name); 

            
    if(object==null

              object 
    = objectFactory.getObject(); 

              scope.put(name, object); 

            }
     

            
    return object; 

        }
     

        
    public Object remove(String name) 

            Map scope 
    = (Map) threadScope.get(); 

            
    return scope.remove(name); 

        }


        publicvoid registerDestructionCallback(String name, Runnable callback) 


        }


        
    public String getConversationId() {

           
    // TODO Auto-generated method stub

           returnnull;

        }
     

             }

    posted @ 2008-06-04 15:21 重歸本壘(Bing) 閱讀(477) | 評(píng)論 (0)編輯 收藏
    僅列出標(biāo)題
    共12頁: 1 2 3 4 5 6 7 8 9 下一頁 Last 
     
    Web Page Rank Icon
    主站蜘蛛池模板: 亚洲午夜久久影院| 亚洲精品无码专区| 成年网站免费入口在线观看| 在线观看免费中文视频| 一本色道久久88亚洲综合 | 亚洲黄网在线观看| 一级毛片免费全部播放| 日韩一区二区a片免费观看| 亚洲国产成人一区二区三区| 精品视频免费在线| 啦啦啦中文在线观看电视剧免费版 | 91在线视频免费观看| 日本人护士免费xxxx视频| 亚洲毛片一级带毛片基地| 大地资源在线资源免费观看| 亚洲精品国产电影| 亚洲av最新在线观看网址| 久九九精品免费视频| 亚洲综合视频在线| 中文在线免费视频| 亚洲精品成人久久久| 亚洲国产精华液2020| 国产成人无码免费看视频软件| 亚洲AV无码精品色午夜果冻不卡 | 亚洲成av人片不卡无码久久| 亚洲最大天堂无码精品区| h视频在线观看免费完整版| 亚洲国产精品无码AAA片| fc2成年免费共享视频18| 伊人久久亚洲综合影院| 亚洲成av人片在线天堂无| 成人免费毛片内射美女APP| 亚洲欧洲国产综合| 久久久久久夜精品精品免费啦| 国产精品久久久亚洲| 东北美女野外bbwbbw免费| 国产亚洲精品成人a v小说| 又硬又粗又长又爽免费看| 亚洲AV无码不卡在线观看下载| 日韩亚洲人成在线综合| 日本免费人成黄页在线观看视频 |