锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
鍘熷洜鏄?hibernate 浣跨敤c3p0榪炴帴orcale鏁版嵁鍚庝笉浼氶噴鏀?錛?c3p0鐨勬渶澶ц繛鎺ユ暟涓?00錛屼絾鏄劇劧c3p0鏈塀ug錛屽鑷存暟鎹簱榪炴帴姹犱笉澶熺敤錛屽鑷磋繘紼嬮攣姝匯?br />鍚庢崲Proxool鍚庯紝瑙傚療姝e父銆?br />
涓嬮潰杞紩鍏跺畠緗戝弸鏂囩珷璇存槑c3p0 銆?Proxool銆?dbcp 鐨勫尯鍒?
<!-- JDBC椹卞姩紼嬪簭 -->
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> <!-- 鏁版嵁搴撶敤鎴峰悕 -->
3<property name="connection.username">root</property> <!-- 鏁版嵁搴撳瘑鐮?nbsp;-->
涓婇潰鐨勪竴孌甸厤緗紝鍦?span class="hilite2" style="background-color: #ffffff">c3p0鍜?span class="hilite1" style="background-color: #ffffff">dbcp涓紝閮芥槸蹇呴渶鐨勶紝鍥犱負hibernate浼氭牴鎹笂榪扮殑閰嶇疆鏉ョ敓鎴恈onnections錛屽啀浜ょ粰c3p0鎴?span class="hilite1" style="background-color: #ffffff">dbcp綆$悊.
1 C3P0
鍙渶鍦╤ibernate.cfg.xml涓姞鍏?
<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
榪樻湁鍦╟lassespath涓姞鍏?span class="hilite2" style="background-color: #ffffff">c3p0-0.8.4.5.jar
2 dbcp
鍦╤ibernate.cfg.xml涓姞鍏?
<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
榪樻湁鍦╟lassespath涓姞鍏ommons-pool-1.2.jar 鍜宑ommons-dbcp-1.2.1.jar.
3 proxool
鐢變簬鏁版嵁搴揷onnection鍦ㄨ緝闀挎椂闂存病鏈夎闂笅浼氳嚜鍔ㄦ柇寮榪炴帴錛屽鑷存祻瑙堝嚭閿欙紝澧炲姞proxool浣滀負鏁版嵁搴損ool銆傚畠鏈夎嚜鍔ㄨ繛鎺ュ姛鑳姐?br />1)銆佷粠http://proxool.sourceforge...涓嬭澆proxool錛岄噴鏀緋roxool.jar鍒癢EB-INF/lib
2)銆佸湪hibernate.cfg.xml涓鍔狅細
<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)銆佸湪涓巋ibernate.cfg.xml鍚岀駭鐩綍錛坰rc鏍圭洰褰曚笅錛夊鍔爌roxool.xml鏂囦歡錛?br />
<?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鍙兘綆$悊鐢辮嚜宸變駭鐢熺殑榪炴帴-->
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鑷姩渚﹀療鍚勪釜榪炴帴鐘舵佺殑鏃墮棿闂撮殧(姣),渚﹀療鍒扮┖闂茬殑榪炴帴灝遍┈涓婂洖鏀?瓚呮椂鐨勯攢姣?/span>-->
16 <house-keeping-sleep-time>90000</house-keeping-sleep-time>
17 <!-- 鏈灝戜繚鎸佺殑絀洪棽榪炴帴鏁?/span>-->
18 <prototype-count>5</prototype-count>
19 <!-- 鍏佽鏈澶ц繛鎺ユ暟,瓚呰繃浜嗚繖涓繛鎺ワ紝鍐嶆湁璇鋒眰鏃訛紝灝辨帓鍦ㄩ槦鍒椾腑絳夊欙紝鏈澶х殑絳夊緟璇鋒眰鏁扮敱maximum-new-connections鍐沖畾-->
20 <maximum-connection-count>100</maximum-connection-count>
21 <!-- 鏈灝忚繛鎺ユ暟-->
22 <minimum-connection-count>10</minimum-connection-count>
23 </proxool>
24</something-else-entirely>
25
浜庡湪hibernate3.0涓紝宸茬粡涓嶅啀鏀寔dbcp浜嗭紝hibernate鐨勪綔鑰呭湪hibernate.org涓紝鏄庣‘鎸囧嚭鍦ㄥ疄璺典腑鍙戠幇dbcp鏈?BUG,鍦ㄦ煇浜涚鎯呬細浜х敓寰堝絀鴻繛鎺ヤ笉鑳介噴鏀撅紝鎵浠ユ姏寮冧簡瀵筪bcp鐨勬敮鎸併傝嚦浜巆3p0錛屾湁璇勮璇村畠鐨勭畻娉曚笉鏄渶浼樼殑錛屽洜涓虹綉涓婃煡璧勬枡寰楃煡錛氭湁緗戝弸鍋氫簡涓涓疄楠岋紝鍦ㄥ悓涓欏圭洰涓垎鍒敤浜嗗嚑涓父鐢ㄧ殑榪炴帴姹狅紝鐒跺悗嫻嬭瘯鍏舵ц兘錛屽彂鐜癱3p0鍗犵敤璧勬簮姣旇緝澶э紝鏁堢巼涔熶笉楂樸傛墍浠ワ紝鍩轟簬涓婅堪鍘熷洜錛宲roxool涓嶅皯琛屽鎺ㄨ崘浣跨敤錛岃屼笖鏆傛椂鏉ヨ錛屾槸璐熼潰璇勪環鏄渶灝戠殑涓涓傚湪涓夋槦涓篃鏈夐」鐩槸鐢╬roxool鐨勩備粠鎬ц兘鍜屽嚭閿欑巼鏉ヨ錛宲roxool紼嶅井姣斿墠涓ょ濂戒簺銆侰3P0錛岀ǔ瀹氭т技涔庝笉閿欙紝鍦ㄨ繖鏂歸潰浼間箮鏈夊緢濂界殑鍙g銆傝嚦浜庢ц兘錛屽簲璇ヤ笉鏄渶濂界殑錛岀畻鏄腑瑙勪腑鐭╃殑綾誨瀷銆?
銆銆Proxool鐨勫彛紕戜技涔庡緢濂斤紝涓嶅ぇ瑙佸埌璐熼潰鐨勮瘎浠鳳紝浠庡畼鏂硅祫鏂欎笂鏉ョ湅錛屾湁璁稿鏈夌敤鐨勭壒鎬у拰鐗圭偣錛屼篃鏄澶氫漢鎺ㄨ崘鐨勩?br />
]]>
]]>
]]><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>
]]>
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
榪欓噷鐨剆cope灝辨槸鐢ㄦ潵閰嶇疆spring bean鐨勪綔鐢ㄥ煙錛屽畠鏍囪瘑bean鐨勪綔鐢ㄥ煙銆?/p>
鍦╯pring2.0涔嬪墠bean鍙湁2縐嶄綔鐢ㄥ煙鍗籌細singleton(鍗曚緥)銆乶on-singleton錛堜篃縐皃rototype錛? Spring2.0浠ュ悗錛屽鍔犱簡session銆乺equest銆乬lobal session涓夌涓撶敤浜嶹eb搴旂敤紼嬪簭涓婁笅鏂囩殑Bean銆傚洜姝わ紝榛樿鎯呭喌涓婼pring2.0鐜板湪鏈変簲縐嶇被鍨嬬殑Bean銆傚綋鐒訛紝Spring2.0瀵笲ean鐨勭被鍨嬬殑璁捐榪涜浜嗛噸鏋勶紝騫惰璁″嚭鐏墊椿鐨凚ean綾誨瀷鏀寔錛岀悊璁轟笂鍙互鏈夋棤鏁板縐嶇被鍨嬬殑Bean錛岀敤鎴峰彲浠ユ牴鎹嚜宸辯殑闇瑕侊紝澧炲姞鏂扮殑Bean綾誨瀷錛屾弧瓚沖疄闄呭簲鐢ㄩ渶姹傘?/p>
1銆乻ingleton浣滅敤鍩?/p>
褰撲竴涓猙ean鐨勪綔鐢ㄥ煙璁劇疆涓簊ingleton, 閭d箞Spring IOC瀹瑰櫒涓彧浼氬瓨鍦ㄤ竴涓叡浜殑bean瀹炰緥錛屽茍涓旀墍鏈夊bean鐨勮姹傦紝鍙id涓庤bean瀹氫箟鐩稿尮閰嶏紝鍒欏彧浼氳繑鍥瀊ean鐨勫悓涓瀹炰緥銆傛崲璦涔嬶紝褰撴妸涓涓猙ean瀹氫箟璁劇疆涓簊ingleton浣滅敤鍩熸椂錛孲pring IOC瀹瑰櫒鍙細鍒涘緩璇ean瀹氫箟鐨勫敮涓瀹炰緥銆傝繖涓崟涓瀹炰緥浼氳瀛樺偍鍒板崟渚嬬紦瀛橈紙singleton cache錛変腑錛屽茍涓旀墍鏈夐拡瀵硅bean鐨勫悗緇姹傚拰寮曠敤閮藉皢榪斿洖琚紦瀛樼殑瀵硅薄瀹炰緥錛岃繖閲岃娉ㄦ剰鐨勬槸singleton浣滅敤鍩熷拰GOF璁捐妯″紡涓殑鍗曚緥鏄畬鍏ㄤ笉鍚岀殑錛屽崟渚嬭璁℃ā寮忚〃紺轟竴涓狢lassLoader涓彧鏈変竴涓猚lass瀛樺湪錛岃岃繖閲岀殑singleton鍒欒〃紺轟竴涓鍣ㄥ搴斾竴涓猙ean錛屼篃灝辨槸璇村綋涓涓猙ean琚爣璇嗕負singleton鏃跺欙紝spring鐨処OC瀹瑰櫒涓彧浼氬瓨鍦ㄤ竴涓bean銆?/p>
閰嶇疆瀹炰緥錛?/p>
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
鎴栬?/p>
<bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>
2銆乸rototype
prototype浣滅敤鍩熼儴緗茬殑bean錛屾瘡涓嬈¤姹傦紙灝嗗叾娉ㄥ叆鍒板彟涓涓猙ean涓紝鎴栬呬互紼嬪簭鐨勬柟寮忚皟鐢ㄥ鍣ㄧ殑
getBean()
鏂規硶錛夐兘浼氫駭鐢熶竴涓柊鐨刡ean瀹炰緥錛岀浉褰撲笌涓涓猲ew鐨勬搷浣滐紝瀵逛簬prototype浣滅敤鍩熺殑bean錛屾湁涓鐐歸潪甯擱噸瑕侊紝閭e氨鏄疭pring涓嶈兘瀵逛竴涓猵rototype bean鐨勬暣涓敓鍛藉懆鏈熻礋璐o紝瀹瑰櫒鍦ㄥ垵濮嬪寲銆侀厤緗佽楗版垨鑰呮槸瑁呴厤瀹屼竴涓猵rototype瀹炰緥鍚庯紝灝嗗畠浜ょ粰瀹㈡埛绔紝闅忓悗灝卞璇rototype瀹炰緥涓嶉椈涓嶉棶浜嗐備笉綆′綍縐嶄綔鐢ㄥ煙錛屽鍣ㄩ兘浼氳皟鐢ㄦ墍鏈夊璞$殑鍒濆鍖栫敓鍛藉懆鏈熷洖璋冩柟娉曪紝鑰屽prototype鑰岃█錛屼換浣曢厤緗ソ鐨勬瀽鏋勭敓鍛藉懆鏈熷洖璋冩柟娉曢兘灝嗕笉浼氳璋冪敤銆傛竻闄rototype浣滅敤鍩熺殑瀵硅薄騫墮噴鏀句換浣昿rototype bean鎵鎸佹湁鐨勬槀璐佃祫婧愶紝閮芥槸瀹㈡埛绔唬鐮佺殑鑱岃矗銆傦紙璁㏒pring瀹瑰櫒閲婃斁琚玸ingleton浣滅敤鍩焍ean鍗犵敤璧勬簮鐨勪竴縐嶅彲琛屾柟寮忔槸錛岄氳繃浣跨敤bean鐨勫悗緗鐞嗗櫒錛岃澶勭悊鍣ㄦ寔鏈夎琚竻闄ょ殑bean鐨勫紩鐢ㄣ傦級
閰嶇疆瀹炰緥錛?/p>
<bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/>
鎴栬?/p>
<beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/>
3銆乺equest
request琛ㄧず璇ラ拡瀵規瘡涓嬈TTP璇鋒眰閮戒細浜х敓涓涓柊鐨刡ean錛屽悓鏃惰bean浠呭湪褰撳墠HTTP request鍐呮湁鏁堬紝閰嶇疆瀹炰緥錛?/p>
request銆乻ession銆乬lobal session浣跨敤鐨勬椂鍊欓鍏堣鍦ㄥ垵濮嬪寲web鐨剋eb.xml涓仛濡備笅閰嶇疆錛?/p>
濡傛灉浣犱嬌鐢ㄧ殑鏄疭ervlet 2.4鍙婁互涓婄殑web瀹瑰櫒錛岄偅涔堜綘浠呴渶瑕佸湪web搴旂敤鐨刋ML澹版槑鏂囦歡web.xml涓鍔犱笅榪癈ontextListener鍗沖彲錛?/p>
鎺ョ潃鏃㈠彲浠ラ厤緗産ean鐨勪綔鐢ㄥ煙浜嗭細
<bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>
4銆乻ession
session浣滅敤鍩熻〃紺鴻閽堝姣忎竴嬈TTP璇鋒眰閮戒細浜х敓涓涓柊鐨刡ean錛屽悓鏃惰bean浠呭湪褰撳墠HTTP session鍐呮湁鏁堬紝閰嶇疆瀹炰緥錛?/p>
閰嶇疆瀹炰緥錛?/p>
鍜宺equest閰嶇疆瀹炰緥鐨勫墠鎻愪竴鏍鳳紝閰嶇疆濂絯eb鍚姩鏂囦歡灝卞彲浠ュ涓嬮厤緗細
<bean id="role" class="spring.chapter2.maryGame.Role" scope="session"/>
5銆乬lobal session
global session浣滅敤鍩熺被浼間簬鏍囧噯鐨凥TTP Session浣滅敤鍩燂紝涓嶈繃瀹冧粎浠呭湪鍩轟簬portlet鐨剋eb搴旂敤涓墠鏈夋剰涔夈侾ortlet瑙勮寖瀹氫箟浜嗗叏灞Session鐨勬蹇碉紝瀹冭鎵鏈夋瀯鎴愭煇涓猵ortlet web搴旂敤鐨勫悇縐嶄笉鍚岀殑portlet鎵鍏變韓銆傚湪global session浣滅敤鍩熶腑瀹氫箟鐨刡ean琚檺瀹氫簬鍏ㄥ眬portlet Session鐨勭敓鍛藉懆鏈熻寖鍥村唴銆傚鏋滀綘鍦╳eb涓嬌鐢╣lobal session浣滅敤鍩熸潵鏍囪瘑bean錛岄偅涔坵eb浼氳嚜鍔ㄥ綋鎴恠ession綾誨瀷鏉ヤ嬌鐢ㄣ?/p>
閰嶇疆瀹炰緥錛?/p>
鍜宺equest閰嶇疆瀹炰緥鐨勫墠鎻愪竴鏍鳳紝閰嶇疆濂絯eb鍚姩鏂囦歡灝卞彲浠ュ涓嬮厤緗細
<bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>
6銆佽嚜瀹氫箟bean瑁呴厤浣滅敤鍩?/p>
鍦╯pring2.0涓綔鐢ㄥ煙鏄彲浠ヤ換鎰忔墿灞曠殑錛屼綘鍙互鑷畾涔変綔鐢ㄥ煙錛岀敋鑷充綘涔熷彲浠ラ噸鏂板畾涔夊凡鏈夌殑浣滅敤鍩燂紙浣嗘槸浣犱笉鑳借鐩杝ingleton鍜宲rototype錛夛紝spring鐨勪綔鐢ㄥ煙鐢辨帴鍙rg.springframework.beans.factory.config.Scope鏉ュ畾涔夛紝鑷畾涔夎嚜宸辯殑浣滅敤鍩熷彧瑕佸疄鐜拌鎺ュ彛鍗沖彲錛屼笅闈㈢粰涓疄渚嬶細
鎴戜滑寤虹珛涓涓嚎紼嬬殑scope錛岃scope鍦ㄨ〃紺轟竴涓嚎紼嬩腑鏈夋晥錛屼唬鐮佸涓嬶細