锘??xml version="1.0" encoding="utf-8" standalone="yes"?>在线亚洲精品视频,国产亚洲精品xxx,欧美激情综合亚洲一二区http://www.tkk7.com/thisliy/category/37188.htmlzh-cnThu, 24 Dec 2009 07:50:26 GMTThu, 24 Dec 2009 07:50:26 GMT60JNDI璇﹁Вhttp://www.tkk7.com/thisliy/archive/2009/12/20/306721.htmlliyangliyangSun, 20 Dec 2009 04:29:00 GMThttp://www.tkk7.com/thisliy/archive/2009/12/20/306721.htmlJNDI
Java Naming and Directory Interface

棣栧厛闇瑕佸naming涓巇irectory 鏈夋渶鍩烘湰鐨勮璇嗭紝榪涜屼簡瑙d嬌鐢↗NDI 鐨勫師鍥狅細
1銆乶aming
Naming 鍦ㄧ數鑴戠郴緇熶笂鏄渶鍩烘湰鐨勬湇鍔′箣涓錛岃棄钁楀悕縐?(names)涓庣墿浠?(objects)鐨勭郴緇?(binding)錛屼嬌鐢ㄨ呴忚繃姝g‘鍦版弿榪扮幆澧?context)鏉ュ瓨鍙栨浣跨敤鐨勭墿浠躲備緥濡傦細DNS(Domain Name System)灝嗕富鏈哄悕縐般?javacenter.cis.th u.edu.tw銆嶅搴斿埌 IP Address銆?140.128.104.30銆嶏紝浠ユ柟渚夸嬌鐢ㄨ呰蹇嗐?
2銆乨irectory
Directory鍙涓?naming姒傚康鐨勬墿鍏咃紝璁╃墿浠舵嫢鏈夊睘鎬?(attributes)浠ヨ褰曢澶栫殑璧勮銆傛柤鏄紝鎴戜滑鍙互閫忚繃鍚嶇О鏉ユ煡鐪?look up)鐗╀歡騫惰幏寰楄鐗╀歡鐨勫睘鎬ц祫璁紝鎴栨槸鍒╃敤灞炴т綔涓烘悳瀵葷殑榪囨護鏉′歡 (search filter)銆備緥濡傦細鐢佃瘽綈匡紝璁板綍钁楁瘡涓漢鐧昏鐨勭數璇濆彿鐮併備粠榪欎釜鏈甯歌鐨勪緥瀛愪腑涓嶉毦鐪嬪嚭directory涓?database鏄庢樉鐨勫樊寮備箣涓錛歞irectory 鐨勫睘鎬у彲浠ユ湁寰堝絎旇祫鏂欙紝姝e姣忎釜浜哄彲浠ュ悓鏃舵嫢鏈夊緢澶氫釜鐢佃瘽鍙風爜銆?Directory鐩墠鍦ㄧ數鑴戠郴緇熶笂杈冭憲鍚嶇殑搴旂敤緋葷粺涓庢灦鏋勬湁 Novell鍏徃鐨?NDS(Novell Directory Services)銆丼un鍏徃鐨凬IS(Network Information Service)錛屼笌鍗沖皢鎴愪負緗戠粶涓婁竴涓柊鏍囧噯鐨?LDAP(Lightweight Directory Access Protocol)銆?br />
JNDI(Java Naming and Directory Interface)鏄疭UN鍏徃鎻愪緵鐨勪竴縐嶆爣鍑嗙殑Java鍛藉悕緋葷粺鎺ュ彛錛孞NDI鎻愪緵緇熶竴鐨勫鎴風API錛岄氳繃涓嶅悓鐨勮闂彁渚涜呮帴鍙NDI SPI鐨勫疄鐜幫紝鐢辯鐞嗚呭皢JNDI API鏄犲皠涓虹壒瀹氱殑鍛藉悕鏈嶅姟鍜岀洰褰曠郴緇燂紝浣垮緱Java搴旂敤紼嬪簭鍙互鍜岃繖浜涘懡鍚嶆湇鍔″拰鐩綍鏈嶅姟涔嬮棿榪涜浜や簰銆傞泦緹NDI瀹炵幇浜嗛珮鍙潬鎬NDI[8]錛岄氳繃鏈嶅姟鍣ㄧ殑闆嗙兢錛屼繚璇佷簡JNDI鐨勮礋杞藉鉤琛″拰閿欒鎭㈠銆傚湪鍏ㄥ眬鍏變韓鐨勬柟寮忎笅錛岄泦緹や腑鐨勪竴涓簲鐢ㄦ湇鍔″櫒淇濊瘉鏈湴JNDI鏍戠殑鐙珛鎬э紝騫舵嫢鏈夊叏灞鐨凧NDI 鏍戙傛瘡涓簲鐢ㄦ湇鍔″櫒鍦ㄦ妸閮ㄧ講鐨勬湇鍔″璞$粦瀹氬埌鑷繁鏈湴鐨凧NDI鏍戠殑鍚屾椂錛岃繕緇戝畾鍒頒竴涓叡浜殑鍏ㄥ眬JNDI鏍戯紝瀹炵幇鍏ㄥ眬JNDI鍜岃嚜韜獼NDI鐨勮仈緋匯?br />
JNDI鏄竴涓簲鐢ㄧ▼搴忚璁$殑API錛屼負寮鍙戜漢鍛樻彁渚涗簡鏌ユ壘鍜岃闂悇縐嶅懡鍚嶅拰鐩綍鏈嶅姟鐨勯氱敤銆佺粺涓鐨勬帴鍙o紝綾諱技JDBC閮芥槸鏋勫緩鍦ㄦ娊璞″眰涓娿?br />
JNDI鍙闂殑鐜版湁鐨勭洰褰曞強鏈嶅姟鏈夛細
DNS銆乆Nam 銆丯ovell鐩綍鏈嶅姟銆丩DAP(Lightweight Directory Access Protocol 杞誨瀷鐩綍璁塊棶鍗忚)銆?CORBA瀵硅薄鏈嶅姟銆佹枃浠剁郴緇熴乄indows XP/2000/NT/Me/9x鐨勬敞鍐岃〃銆丷MI銆丏SML v1&v2銆丯IS銆?br />
JNDI浼樼偣錛?br /> 鍖呭惈浜嗗ぇ閲忕殑鍛藉悕鍜岀洰褰曟湇鍔★紝浣跨敤閫氱敤鎺ュ彛鏉ヨ闂笉鍚岀綾葷殑鏈嶅姟錛?br /> 鍙互鍚屾椂榪炴帴鍒板涓懡鍚嶆垨鐩綍鏈嶅姟涓婏紱
寤虹珛璧烽昏緫鍏寵仈錛屽厑璁告妸鍚嶇О鍚孞ava瀵硅薄鎴栬祫婧愬叧鑱旇搗鏉ワ紝鑰屼笉蹇呮寚瀵煎璞℃垨璧勬簮鐨勭墿鐞咺D銆?br />
JNDI紼嬪簭鍖咃細
javax.naming錛氬懡鍚嶆搷浣滐紱
javax.naming.directory錛氱洰褰曟搷浣滐紱
javax.naming.event錛氬湪鍛藉悕鐩綍鏈嶅姟鍣ㄤ腑璇鋒眰浜嬩歡閫氱煡錛?br /> javax.naming.ldap錛氭彁渚汱DAP鏀寔錛?br /> javax.naming.spi錛氬厑璁稿姩鎬佹彃鍏ヤ笉鍚屽疄鐜般?br /> 鍒╃敤JNDI鐨勫懡鍚嶄笌鏈嶅姟鍔熻兘鏉ユ弧瓚充紒涓氱駭APIs瀵瑰懡鍚嶄笌鏈嶅姟鐨勮闂紝璇稿EJBs銆丣MS銆丣DBC 2.0浠ュ強IIOP涓婄殑RMI閫氳繃JNDI鏉ヤ嬌鐢–ORBA鐨勫懡鍚嶆湇鍔°?br /> JNDI涓嶫DBC錛?br /> JNDI鎻愪緵浜嗕竴縐嶇粺涓鐨勬柟寮忥紝鍙互鐢ㄥ湪緗戠粶涓婃煡鎵懼拰璁塊棶鏈嶅姟銆傞氳繃鎸囧畾涓涓祫婧愬悕縐幫紝璇ュ悕縐板搴斾簬鏁版嵁搴撴垨鍛藉悕鏈嶅姟涓殑涓涓邯褰曪紝鍚屾椂榪斿洖鏁版嵁搴撹繛鎺ュ緩绔嬫墍蹇呴』鐨勪俊鎭?br /> 浠g爜紺轟緥錛?br /> try{
Context cntxt = new InitialContext();
DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt");
}
catch(NamingException ne){
...
}

JNDI涓嶫MS錛?br /> 娑堟伅閫氫俊鏄蔣浠剁粍浠舵垨搴旂敤紼嬪簭鐢ㄦ潵閫氫俊鐨勪竴縐嶆柟娉曘侸MS灝辨槸涓縐嶅厑璁稿簲鐢ㄧ▼搴忓垱寤恒佸彂閫併佹帴鏀躲佸拰璇誨彇娑堟伅鐨凧AVA鎶鏈?br /> 浠g爜紺轟緥錛?br /> try{
Properties env = new Properties();
InitialContext inictxt = new InitialContext(env);
TopicConnectionFactory connFactory = (TopicConnectionFactory) inictxt.lookup("TTopicConnectionFactory");
...
}
catch(NamingException ne){
...
}

璁塊棶鐗瑰畾鐩綍錛氫婦涓緥瀛愶紝浜烘槸涓璞★紝浠栨湁濂藉嚑涓睘鎬э紝璇稿榪欎釜浜虹殑濮撳悕銆佺數璇濆彿鐮併佺數瀛愰偖浠跺湴鍧銆侀偖鏀跨紪鐮佺瓑灞炴с傞氳繃getAttributes()鏂規硶
Attribute attr =directory.getAttributes(personName).get("email");
String email = (String)attr.get();
閫氳繃浣跨敤JNDI璁╁鎴蜂嬌鐢ㄥ璞$殑鍚嶇О鎴栧睘鎬ф潵鏌ユ壘瀵硅薄錛?br /> foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls);
閫氳繃浣跨敤JNDI鏉ユ煡鎵捐濡傛墦鍗版満銆佹暟鎹簱榪欐牱鐨勫璞★紝鏌ユ壘鎵撳嵃鏈虹殑渚嬪瓙錛?br /> Printer printer = (Printer)namespace.lookup(printerName);
printer.print(document);

嫻忚鍛藉悕絀洪棿錛?br /> NamingEnumeration list = namespace.list("o=Widget, c=US");
while (list.hasMore()) {
NameClassPair entry = (NameClassPair)list.next();
display(entry.getName(), entry.getClassName());
}

甯哥敤鐨凧NDI鎿嶄綔錛?br /> void bind(String sName,Object object);鈥曗曠粦瀹氾細鎶婂悕縐板悓瀵硅薄鍏寵仈鐨勮繃紼?br /> void rebind(String sName,Object object);鈥曗曢噸鏂扮粦瀹氾細鐢ㄦ潵鎶婂璞″悓涓涓凡緇忓瓨鍦ㄧ殑鍚嶇О閲嶆柊緇戝畾
void unbind(String sName);鈥曗曢噴鏀撅細鐢ㄦ潵鎶婂璞′粠鐩綍涓噴鏀懼嚭鏉?br /> void lookup(String sName,Object object);鈥曗曟煡鎵撅細榪斿洖鐩綍鎬葷殑涓涓璞?br /> void rename(String sOldName,String sNewName);鈥曗曢噸鍛藉悕錛氱敤鏉ヤ慨鏀瑰璞″悕縐扮粦瀹氱殑鍚嶇О
NamingEnumeration listBinding(String sName);鈥曗曟竻鍗曪細榪斿洖緇戝畾鍦ㄧ壒瀹氫笂涓嬫枃涓璞$殑娓呭崟鍒楄〃
NamingEnumeration list(String sName);

浠g爜紺轟緥錛氶噸鏂板緱鍒頒簡鍚嶇О銆佺被鍚嶅拰緇戝畾瀵硅薄銆?br /> NamingEnumeration namEnumList = ctxt.listBinding("cntxtName");
...
while ( namEnumList.hasMore() )   {
Binding bnd = (Binding) namEnumList.next();
String sObjName = bnd.getName();
String sClassName = bnd.getClassName();
SomeObject objLocal = (SomeObject) bnd.getObject();
}

liyang 2009-12-20 12:29 鍙戣〃璇勮
]]>
String.getBytes()鍜宯ew String()http://www.tkk7.com/thisliy/archive/2009/12/09/305313.htmlliyangliyangWed, 09 Dec 2009 09:27:00 GMThttp://www.tkk7.com/thisliy/archive/2009/12/09/305313.html

鍦↗ava涓紝String.getBytes(String decode)鏂規硶浼氭牴鎹寚瀹氱殑decode緙栫爜榪斿洖鏌愬瓧絎︿覆鍦ㄨ緙栫爜涓嬬殑byte鏁扮粍琛ㄧず錛屽

byte[] b_gbk = "涓?.getBytes("GBK");
byte[] b_utf8 = "涓?.getBytes("UTF-8");
byte[] b_iso88591 = "涓?.getBytes("ISO8859-1");

灝嗗垎鍒繑鍥?#8220;涓?#8221;榪欎釜姹夊瓧鍦℅BK銆乁TF-8鍜孖SO8859-1緙栫爜涓嬬殑byte鏁扮粍琛ㄧず錛屾鏃禸_gbk鐨勯暱搴︿負2錛宐_utf8鐨勯暱搴︿負3錛宐_iso88591鐨勯暱搴︿負1銆?/p>

鑰屼笌getBytes鐩稿鐨勶紝鍙互閫氳繃new String(byte[], decode)鐨勬柟寮忔潵榪樺師榪欎釜“涓?#8221;瀛楁椂錛岃繖涓猲ew String(byte[], decode)瀹為檯鏄嬌鐢╠ecode鎸囧畾鐨勭紪鐮佹潵灝哹yte[]瑙f瀽鎴愬瓧絎︿覆銆?/p>

String s_gbk = new String(b_gbk,"GBK");
String s_utf8 = new String(b_utf8,"UTF-8");
String s_iso88591 = new String(b_iso88591,"ISO8859-1");

閫氳繃鎵撳嵃s_gbk銆乻_utf8鍜宻_iso88591錛屼細鍙戠幇錛宻_gbk鍜宻_utf8閮芥槸“涓?#8221;錛岃屽彧鏈塻_iso88591鏄竴涓笉璁よ瘑 鐨勫瓧絎︼紝涓轟粈涔堜嬌鐢↖SO8859-1緙栫爜鍐嶇粍鍚堜箣鍚庯紝鏃犳硶榪樺師“涓?#8221;瀛楀憿錛屽叾瀹炲師鍥犲緢綆鍗曪紝鍥犱負ISO8859-1緙栫爜鐨勭紪鐮佽〃涓紝鏍規湰灝辨病鏈夊寘鍚眽瀛? 瀛楃錛屽綋鐒朵篃灝辨棤娉曢氳繃"涓?.getBytes("ISO8859-1");鏉ュ緱鍒版紜殑“涓?#8221;瀛楀湪ISO8859-1涓殑緙栫爜鍊間簡錛屾墍浠ュ啀閫氳繃new String()鏉ヨ繕鍘熷氨鏃犱粠璋堣搗浜嗐?/p>

鍥犳錛岄氳繃String.getBytes(String decode)鏂規硶鏉ュ緱鍒癰yte[]鏃訛紝涓瀹氳紜畾decode鐨勭紪鐮佽〃涓‘瀹炲瓨鍦⊿tring琛ㄧず鐨勭爜鍊鹼紝榪欐牱寰楀埌鐨刡yte[]鏁扮粍鎵嶈兘姝g‘琚繕鍘熴?/p>

鏈夋椂鍊欙紝涓轟簡璁╀腑鏂囧瓧絎﹂傚簲鏌愪簺鐗規畩瑕佹眰錛堝http header澶磋姹傚叾鍐呭蹇呴』涓篿so8859-1緙栫爜錛夛紝鍙兘浼氶氳繃灝嗕腑鏂囧瓧絎︽寜鐓у瓧鑺傛柟寮忔潵緙栫爜鐨勬儏鍐碉紝濡?/p>

String s_iso88591 = new String("涓?.getBytes("UTF-8"),"ISO8859-1")錛岃繖鏍峰緱鍒扮殑s_iso8859-1瀛楃涓插疄闄呮槸涓変釜鍦? ISO8859-1涓殑瀛楃錛屽湪灝嗚繖浜涘瓧絎︿紶閫掑埌鐩殑鍦板悗錛岀洰鐨勫湴紼嬪簭鍐嶉氳繃鐩稿弽鐨勬柟寮廠tring s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")鏉ュ緱鍒版紜殑涓枃姹夊瓧“涓?#8221;銆傝繖鏍峰氨鏃繚璇佷簡閬靛畧鍗? 璁瀹氥佷篃鏀寔涓枃銆?/p>

liyang 2009-12-09 17:27 鍙戣〃璇勮
]]>
Classloader鐨勫熀鏈蹇?/title><link>http://www.tkk7.com/thisliy/archive/2009/10/31/300528.html</link><dc:creator>liyang</dc:creator><author>liyang</author><pubDate>Sat, 31 Oct 2009 15:20:00 GMT</pubDate><guid>http://www.tkk7.com/thisliy/archive/2009/10/31/300528.html</guid><wfw:comment>http://www.tkk7.com/thisliy/comments/300528.html</wfw:comment><comments>http://www.tkk7.com/thisliy/archive/2009/10/31/300528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/thisliy/comments/commentRss/300528.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/thisliy/services/trackbacks/300528.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        Classloader鍦ㄨ繍琛屾湡浼氫互鐖?瀛愮殑灞傛緇撴瀯瀛樺湪錛屾瘡涓狢lassloader鐨勫疄渚嬮兘鎸佹湁鍏剁埗Classloader鐨勫紩鐢紝鑰岀埗Classloader騫朵笉鎸佹湁瀛怌lassloader鐨勫紩鐢紝浠庤屽艦鎴愪竴鏉″崟鍚戦摼錛屽綋涓涓被瑁呰澆璇鋒眰琚彁浜ゅ埌鏌愪釜Classloader鏃訛紝鍏墮粯璁ょ殑綾昏杞借繃紼嬪涓嬶細<br /> </span></span></span></span></span> <li> <p><span style="color: red"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">媯鏌ヨ繖涓被鏈夋病鏈夎瑁呰澆榪囷紝濡傛灉宸茬粡瑁呰澆榪囷紝鍒欑洿鎺ヨ繑鍥烇紱</span></span></span></span></span></span></p> <li> <p><span style="color: red"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">璋冪敤鐖禖lassloader鍘昏杞界被錛屽鏋滆杞芥垚鍔熺洿鎺ヨ繑鍥烇紱</span></span></span></span></span></span></p> <li> <p><span style="color: red"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">璋冪敤鑷韓鐨勮杞界被鐨勬柟娉曪紝濡傛灉瑁呰澆鎴愬姛鐩存帴榪斿洖錛?/span></span></span></span></span></span></p> <li> <p><span style="color: red"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">涓婅堪鎵鏈夋楠ら兘娌℃湁鎴愬姛瑁呰澆鍒扮被錛屾姏鍑篊lassNotFoundException錛?/span></span></span></span></span></span></p> </li> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        姣忎竴灞傛鐨凜lassloader閮介噸澶嶄笂榪板姩浣溿?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        綆鍗曡錛屽綋Classloader閾句笂鐨勬煇涓Classloader鏀跺埌綾昏杞借姹傛椂錛屼細鎸夐『搴忓悜涓婅闂叾鎵鏈夌埗鑺傜偣錛岀洿鑷蟲渶欏剁錛圔ootstrapClassLoader錛夛紝浠諱綍涓涓妭鐐規垚鍔熷彈鐞嗕簡姝よ姹傦紝鍒欒繑鍥烇紝濡傛灉鎵鏈夌埗鑺傜偣閮戒笉鑳藉彈鐞嗭紝榪欐椂鍊欐墠鐢辮璇鋒眰鐨凜lassloader鑷韓鏉ヨ杞借繖涓被錛屽鏋滀粛鐒朵笉鑳借杞斤紝鍒欐姏鍑哄紓甯搞?br /> <br /> <strong>綾昏杞界殑鏂瑰紡</strong></span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        綾昏杞界殑鏂瑰紡涓昏鏈変袱縐嶏細<span style="background-color: #ffff00">鏄懼紡</span>鐨勫拰<span style="background-color: #ffff00">闅愬紡</span>鐨勩?/span></span></span></span></span></p> <p><u><em><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        鏄懼紡綾昏杞?/span></span></span></span></span></em></u></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        鍙戠敓鍦ㄤ嬌鐢ㄤ互涓嬫柟娉曡皟鐢ㄨ繘琛岃杞界被鐨勬椂鍊欙細</span></span></span></span></span></p> <p><span style="color: red"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        ClassLoader.loadClass()錛堜嬌鐢ㄦ寚瀹氱殑Classloader榪涜瑁呰澆錛?/span></span></span></span></span></span></p> <p><span style="color: red"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        Class.forName()錛堜嬌鐢ㄥ綋鍓嶇被鐨凜aller Classloader榪涜瑁呰澆錛?/span></span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        褰撹皟鐢ㄤ笂榪版柟娉曠殑鏃跺欙紝鎸囧畾鐨凜lass錛堜互綾誨悕涓哄弬鏁幫級鐢盋lassloader瑁呭叆銆?span style="color: red"><span style="background-color: #ffff00"><span style="color: red">榪欎袱涓柟娉曠殑琛屼負鏈夎交寰殑鍖哄埆錛孋lass.forName()鍦ㄧ被瑁呰澆瀹屾垚鍚庯紝浼氬綾昏繘琛屽垵濮嬪寲錛岃孋lassLoader.loadClass()鍙礋璐h杞界被</span></span>銆?/span></span></span></span></span></span></p> <p><u><em><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        闅愬紡綾昏杞?/span></span></span></span></span></em></u></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        鍙戠敓鍦ㄧ敱浜庡紩鐢ㄣ佸疄渚嬪寲鎴栫戶鎵垮鑷撮渶瑕佽杞界被鐨勬椂鍊欍傞殣寮忕被瑁呰澆鏄湪騫曞悗鍚姩鐨勶紝JVM浼氳В鏋愬繀瑕佺殑寮曠敤騫惰杞界被銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        綾葷殑瑁呰澆閫氬父緇勫悎浜嗘樉寮忓拰闅愬紡涓ょ鏂瑰紡銆備緥濡傦紝Classloader鍙兘鍏堟樉寮忓湴瑁呰澆涓涓被錛岀劧鍚庡啀闅愬紡鍦拌杞藉畠寮曠敤鐨勫叾瀹冪被銆?br /> <br /> </span></span></span></span></span><strong><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">涓涓熀鏈殑Classloader鐨勫眰嬈$粨鏋?br />         <br />                                                             <img src="http://infocenter.apusic.com/help/topic/aas/v6/img/cl1.jpg" align="center" alt="" /><br /> </span></span></span></span></span></strong></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        涓婂浘鏄劇ず浜嗕竴涓熀鏈殑Classloader鐨勫眰嬈$粨鏋勩?span style="color: red; background-color: #ffff00">鍦ㄧ粰瀹氬眰嬈′笂鐨凜lassloader涓嶈兘寮曠敤浠諱綍灞傛浣庝簬瀹冪殑Classloader錛屽彟澶栵紝瀹冪殑瀛怌lassloader瑁呰澆鐨勭被瀵逛簬鍏舵槸涓嶅彲瑙佺殑銆?/span>鍦ㄤ笂鍥句腑錛屽鏋淔oo.class鏄敱ClassLoaderB瑁呰澆鐨勶紝騫朵笖Foo.class渚濊禆浜嶣ar.class錛岄偅涔圔ar.class蹇呴』鐢盋lassLoaderA鎴朆瑁呰澆銆傚鏋淏ar.class鍙槸瀵笴lassLoaderC鍜孌鍙錛岄偅涔堝皢浼氬彂鐢烠lassNotFoundException鎴栬匩oClassDefFoundError寮傚父銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">濡傛灉Bar.class鍒嗗埆瀵逛簬涓や釜騫崇駭鐨凜lassloader鍙錛堜緥濡侰鍜孌錛夛紝浣嗗浜庡畠浠殑鐖禖lassloader涓嶅彲瑙侊紝閭d箞褰撶被瑁呰澆璇鋒眰鍙戦佸埌榪欎袱涓狢lassloader鏃訛紝姣忎竴涓狢lassloader浼氳杞借嚜宸辯増鏈殑綾匯侰lassLoaderC瑁呰澆鐨凚ar.class鐨勫疄渚嬪皢涓嶅吋瀹逛簬ClassLoaderD瑁呰澆鐨凚ar.class鐨勫疄渚嬨傚鏋滃Classloader鐨勫眰嬈$粨鏋勪笉浜嗚В錛岃瘯鍥句嬌鐢ㄧ敱ClassLoaderC瑁呰澆鐨勭被鍘婚犲瀷涓涓狢lassLoaderD瑁呰澆鐨凚ar.class鐨勫疄渚嬶紝鍒欎細鍙戠敓閫犲瀷澶辮觸錛圕lassCastException錛夈?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt"><strong>鍩烘湰鐨凜lassloader<br /> </strong>        鏈鍩烘湰鐨凜lassloader鏄疊ootstrap Classloader鍜孲ystem Classloader錛堜篃鏈変漢縐頒箣涓篈ppClassLoader錛夛紝鍙鍐欒繃java紼嬪簭錛岄兘浼氱敤鍒拌繖涓や釜Classloader銆?/span></span></span></span></span></p> <ul type="disc"> <li> <p><strong><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">Bootstrap Classloader</span></span></span></span></span></strong></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">榪欎釜Classloader瑁呰澆Java铏氭嫙鏈烘彁渚涚殑鍩烘湰榪愯鏃跺埢綾伙紙$JAVA_HOME/jre/lib錛夛紝榪樺寘鎷斁緗湪緋葷粺鎵╁睍鐩綍錛?JAVA_HOME/jre/lib/ext錛夊唴鐨凧AR鏂囦歡涓殑綾匯傝繖涓狢lassloader鏄痡ava紼嬪簭鏈欏跺眰鐨凜lassloader錛屽彧鏈夊畠娌℃湁鐖禖lassloader銆傚鏋滀綘灝嗕竴涓嚜宸卞啓鐨勭被鎴栫涓夋柟jar鍖呮斁榪?JAVA_HOME/jre/lib/ext鐩綍涓紝閭d箞瀹冨皢琚獴ootstrap Classloader瑁呰澆銆?/span></span></span></span></span></p> <li> <p><strong><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">System Classloader</span></span></span></span></span></strong></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">System Classloader閫氬父璐熻矗瑁呰澆緋葷粺鐜鍙橀噺CLASSPATH涓緗殑綾匯傜敱System Classloader瑁呰澆鐨勭被瀵逛簬Apusic鏈嶅姟鍣ㄥ唴閮ㄧ殑綾誨拰閮ㄧ講鍦ˋpusic鏈嶅姟鍣ㄤ笂鐨凧2EE搴旂敤錛堥氬父鎵撳寘鎴恊ar錛夐兘鏄彲瑙佺殑銆?APUSIC_HOME%/lib鐩綍涓嬬殑jar鏂囦歡鏄疉pusic搴旂敤鏈嶅姟鍣ㄧ殑鏍稿績綾伙紝涓鑸妸榪欎簺jar鏂囦歡閮藉姞鍦ㄧ郴緇烠LASSPATH涓傚彟澶栵紝涓浜涘叕鐢ㄧ被涔熷彲浠ュ姞鍦ㄧ郴緇烠LASSPATH涓紝濡侸DBC椹卞姩紼嬪簭絳夈?/span></span></span></span></span></p> </li> </ul> <br /> <span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt"><strong>鑷畾涔塁lassloader<br /> </strong>        鍦ㄧ紪鍐欏簲鐢ㄤ唬鐮佺殑鏃跺欙紝甯稿父鏈夐渶瑕佸姩鎬佸姞杞界被鍜岃祫婧愶紝姣斿鏄懼紡鐨勮皟鐢╟lassLoader.loadClass(“ClassName”)錛?span style="color: red">铏界劧鐩存帴浣跨敤ClassLoader.getSystemClassLoader()錛屽彲浠ュ緱鍒癝ystemlassLoader鏉ュ畬鎴愯繖欏逛換鍔°備絾鏄紝鐢變簬System Classloader鏄疛VM鍒涘緩鐨凜lassloader錛屽畠鐨勮亴璐f湁闄愶紝鍙傚悎浜庢櫘閫氱殑java搴旂敤紼嬪簭錛屽湪寰堝澶嶆潅鍦烘櫙涓笉鑳芥弧瓚抽渶姹傦紝姣斿鍦ㄥ簲鐢ㄦ湇鍔″櫒涓?/span>榪欐椂鍊欏氨闇瑕佽嚜琛屽疄鐜頒竴涓狢lassloader鐨勫瓙綾伙紝瀹炵幇鐗瑰畾鐨勮涓恒侫pusic搴旂敤鏈嶅姟鍣ㄤ腑灝卞畾涔変簡鑻ュ共涓壒鏈夌殑Classloader錛岃礋璐h杞介儴緗插湪Apusic涓殑JavaEE搴旂敤涓殑綾伙紝榪欓噷騫朵笉璇曞浘鍘繪弿榪板浣曞疄鐜頒竴涓嚜瀹氫箟鐨凜lassloader.<br /> <br /> </span></span></span></span></span><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt"><strong>Caller Classloader鍜岀嚎紼嬩笂涓嬫枃Classloader<br /> </strong>        鍔ㄦ佸姞杞借祫婧愭椂錛屽線寰鏈変笁縐岰lassloader鍙夋嫨錛?strong>System Classloader</strong>銆?strong>Caller Classloader</strong>銆?strong>褰撳墠綰跨▼鐨勪笂涓嬫枃Classloader</strong>銆係ystem Classloader鍓嶉潰宸茬粡鎻忚堪榪囦簡錛屼笅闈㈡垜浠湅鐪嬩粈涔堟槸Caller Classloader銆佸綋鍓嶇嚎紼嬬殑涓婁笅鏂嘋lassloader銆?br />          </span></span></span></span></span> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">     <u><em>   Caller Classloader</em></u></span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        Caller Classloader鎸囩殑鏄綋鍓嶆墍鍦ㄧ殑綾昏杞芥椂浣跨敤鐨凜lassloader錛屽畠鍙兘鏄疭ystem Classloader錛屼篃鍙兘鏄竴涓嚜瀹氫箟鐨凜lassloader錛岃繖閲岋紝鎴戜滑閮界О涔嬩負Caller Classloader銆傛垜浠彲浠ラ氳繃getClass().getClassLoader()鏉ュ緱鍒癈aller Classloader銆備緥濡傦紝瀛樺湪A綾伙紝鏄AClassLoader鎵鍔犺澆錛孉.class.getClassLoader()涓篈ClassLoader鐨勫疄渚嬶紝瀹冨氨鏄疉.class鐨凜aller Classloader銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        濡傛灉鍦ˋ綾諱腑浣跨敤new鍏抽敭瀛楋紝鎴栬匔lass.forName(String className)鍜孋lass.getResource(String resourceName)鏂規硶錛岄偅涔堣繖鏃朵篃鏄嬌鐢–aller Classloader鏉ヨ杞界被鍜岃祫婧愩傛瘮濡傚湪A綾諱腑鍒濆鍖朆綾伙細<br /> <br /> /**<br />   * A.java<br /> */<br /> ...<br /> public void foo() {<br />     B b = new B();<br />     b.setName("b");<br /> }<br />         閭d箞錛孊綾葷敱褰撳墠Classloader錛屼篃灝辨槸AClassloader瑁呰澆銆傚悓鏍風殑錛屼慨鏀逛笂榪扮殑foo鏂規硶錛屽叾瀹炵幇鏀逛負錛?/span></span></span></span></span></p> <span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        Class clazz = Class.forName("foo.B");<br /> </span></span></span></span></span> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">鏈緇堣幏鍙栧埌鐨刢lazz錛屼篃鏄敱AClassLoader鎵瑁呰澆銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        閭d箞錛屽浣曚嬌鐢ㄦ寚瀹氱殑Classloader鍘誨畬鎴愮被鍜岃祫婧愮殑瑁呰澆鍛紵鎴栬呰錛屽綋闇瑕佸幓瀹炰緥鍖栦竴涓狢aller Classloader鍜屽畠鐨勭埗Classloader閮戒笉鑳借杞界殑綾繪椂錛屾庝箞鍔炲憿錛?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">        涓涓緢鍏稿瀷鐨勪緥瀛愭槸JAXP錛屽綋浣跨敤xerces鐨凷AX瀹炵幇鏃訛紝鎴戜滑棣栧厛闇瑕侀氳繃rt.jar涓殑javax.xml.parsers.SAXParserFactory.getInstance()寰楀埌xercesImpl.jar涓殑org.apache.xerces.jaxp.SAXParserFactoryImpl鐨勫疄渚嬨傜敱浜嶫AXP鐨勬鏋舵帴鍙g殑class浣嶄簬JAVA_HOME/lib/rt.jar涓紝鐢盉ootstrap Classloader瑁呰澆錛屽浜嶤lassloader灞傛緇撴瀯涓殑鏈欏跺眰錛岃寈ercesImpl.jar鐢變綆灞傜殑Classloader瑁呰澆錛屼篃灝辨槸璇碨AXParserFactoryImpl鏄湪SAXParserFactory涓疄渚嬪寲鐨勶紝濡傚墠鎵榪幫紝浣跨敤SAXParserFactory鐨凜aller Classloader(榪欓噷鏄疊ootstrap Classloader)鏄畬鎴愪笉浜嗚繖涓換鍔$殑銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">榪欐椂錛屾垜浠氨闇瑕佷簡瑙d竴涓嬬嚎紼嬩笂涓嬫枃Classloader浜?br /> <br /> </span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">       <u><em> 綰跨▼涓婁笅鏂嘋lassloader</em></u></span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">姣忎釜綰跨▼閮芥湁涓涓叧鑱旂殑涓婁笅鏂嘋lassloader銆傚鏋滀嬌鐢╪ew Thread()鏂瑰紡鐢熸垚鏂扮殑綰跨▼錛屾柊綰跨▼灝嗙戶鎵垮叾鐖剁嚎紼嬬殑涓婁笅鏂嘋lassloader銆傚鏋滅▼搴忓綰跨▼涓婁笅鏂嘋lassloader娌℃湁浠諱綍鏀瑰姩鐨勮瘽錛岀▼搴忎腑鎵鏈夌殑綰跨▼灝嗛兘浣跨敤System Classloader浣滀負涓婁笅鏂嘋lassloader銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">褰撲嬌鐢═hread.currentThread().setContextClassLoader(classloader)鏃訛紝綰跨▼涓婁笅鏂嘋lassloader灝卞彉鎴愪簡鎸囧畾鐨凜lassloader浜嗐傛鏃訛紝鍦ㄦ湰綰跨▼鐨勪換鎰忎竴澶勫湴鏂癸紝璋冪敤Thread.currentThread().getContextClassLoader()錛岄兘鍙互寰楀埌鍓嶉潰璁劇疆鐨凜lassloader銆?/span></span></span></span></span></p> <p><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">鍥炲埌JAXP鐨勪緥瀛愶紝鍋囪xercesImpl.jar鍙湁AClassLoader鑳借杞斤紝鐜板湪A.class鍐呴儴瑕佷嬌鐢↗AXP錛屼絾鏄疉.class鍗翠笉鏄敱AClassLoader鎴栬呭畠鐨勫瓙Classloader瑁呰澆鐨勶紝閭d箞鍦ˋ.class涓紝搴旇榪欐牱鍐欐墠鑳芥紜緱鍒皒ercesImpl鐨勫疄鐜幫細</span></span></span></span></span></p> <span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt">AClassLoader aClassLoader = new AClassLoader(parent);<br /> Thread.currentThread().setContextClassLoader(aClassLoader);<br /> SAXParserFactory factory = SAXParserFactory.getInstance();<br /> ...<br />         JAXP榪欐椂灝卞彲浠ラ氳繃綰跨▼涓婁笅鏂嘋lassloader瑁呰澆xercesImpl鐨勫疄鐜扮被浜嗭紝褰撶劧錛岃繕鏈変竴涓墠鎻愭槸鍦ㄩ厤鍒舵枃浠舵垨鍚姩鍙傛暟涓寚瀹氫簡浣跨敤xerces浣滀負JAXP鐨勫疄鐜般備笅闈㈡槸JAXP涓殑浠g爜鐗囨柇錛?br /> ClassLoader cl = Thread.currentThread().getContextClassLoader();<br /> …<br /> Class providerClass = cl.loadClass(className);<br /> …<br /> </span></span></span></span></span><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="font-family: 寰蔣闆呴粦"><span style="font-family: 騫煎渾"><span style="font-size: 10pt"><strong>JVM涓被鐨勫敮涓鎬?br /> </strong>        JVM涓烘瘡涓涓狢lassloader緇存姢涓涓敮涓鏍囪瘑銆傚湪涓涓狫VM閲岋紙瀵瑰簲涓涓狫ava榪涚▼錛夛紝鍙互鐢變笉鍚岀殑Classloader瑁呰澆澶氫釜鍚屽悕鐨勭被錛堟寚鍖呭悕鍜岀被鍚嶉兘瀹屽叏鐩稿悓錛屼笅鍚岋級錛屼負浜嗗敮涓鍦版爣璇嗚涓嶅悓Classloader瑁呰澆鐨勭被錛孞VM浼氬湪琚杞界殑綾誨悕鍓嶅姞涓婅杞借綾葷殑Classloader鐨勬爣璇嗐?/span></span></span></span></span> <img src ="http://www.tkk7.com/thisliy/aggbug/300528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/thisliy/" target="_blank">liyang</a> 2009-10-31 23:20 <a href="http://www.tkk7.com/thisliy/archive/2009/10/31/300528.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>PropertyChangeSupport綾?/title><link>http://www.tkk7.com/thisliy/archive/2009/07/07/285832.html</link><dc:creator>liyang</dc:creator><author>liyang</author><pubDate>Tue, 07 Jul 2009 07:58:00 GMT</pubDate><guid>http://www.tkk7.com/thisliy/archive/2009/07/07/285832.html</guid><description><![CDATA[<span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-family: ">鏈榪戠湅浠g爜涓鐩寸鍒拌繖涓被錛屽厛鍋氫竴涓葷粨銆?br /> <br /> 鍏堢湅PropertyChangeSupport綾葷殑瀹樻柟鏂囨。瑙i噴錛?br /> This is a utility class that can be used by beans that support bound properties. You can use an instance of this class as a member field of your bean and delegate various work to it.<br /> <br /> 1錛庡叧鑱斿睘鎬?br /> 鍦↗avaBean鐨勮璁′腑錛屾寜鐓у睘鎬х殑涓嶅悓浣滅敤鍙堢粏鍒嗕負鍥涚被錛氬崟鍊煎睘鎬с佺儲寮曞睘鎬с佸叧鑱斿睘鎬с侀檺鍒跺睘鎬с傚叧鑱斿睘鎬э紝涔熺О涔嬩負緇戝畾灞炴с傜粦瀹氬睘鎬т細鍦ㄥ睘鎬у煎彂鐢熷彉鍖栨椂錛岄氱煡鎵鏈夌浉鍏崇殑鐩戝惉鍣ㄣ備負浜嗗疄鐜頒竴涓粦瀹氬睘鎬э紝蹇呴』瀹炵幇涓や釜鏈哄埗銆?br /> 1錛? 鏃犺浣曟椂錛屽彧瑕佸睘鎬х殑鍊煎彂鐢熷彉鍖栵紝璇ean蹇呴』鍙戦佷竴涓狿ropertyChange浜嬩歡緇欐墍鏈夊凡娉ㄥ唽鐨勭洃鍚櫒銆?br /> 2錛? 涓轟簡浣跨洃鍚櫒鑳藉娉ㄥ唽錛宐ean蹇呴』瀹炵幇浠ヤ笅涓や釜鏂規硶錛歷oid addPropertyChangeListener(PropertyChangeListener listener);<br /> void removePropertyChangerListener(PropertyChangerListener listener);<br /> <br /> <br /> <br /> 2錛庝嬌鐢≒ropertyChangeSupport綆$悊鐩戝惉鍣?br /> 鍙互閫氳繃java.bean鍖呬笅鐨凱ropertyChangeSupport綾繪潵綆$悊鐩戝惉鍣ㄣ傝浣跨敤榪欎釜綾伙紝bean蹇呴』鏈変竴涓綾葷殑鏁版嵁鍩熴俻rivate PropertyChangeSupport listeners = new PropertyChangeSupport(this);<br /> <br /> <br /> 榪欐牱鍙互灝嗘坊鍔犲拰縐婚櫎鐩戝惉鍣ㄧ殑浠誨姟浜ょ粰榪欎釜瀵硅薄銆俻ublic void addPropertyChangeListener(PropertyChangeListener listener) {<br /> listeners.addPropertyChangeListener(listener);<br /> }<br /> <br /> public void removePropertyChangeListener(PropertyChangeListener listener) {<br /> listeners.removePropertyChangeListener(listener);<br /> }<br /> <br /> <br /> 褰揵ean鐨勫睘鎬у彂鐢熷彉鍖栨椂錛屼嬌鐢≒ropertyChangeSupport瀵硅薄鐨刦irePropertyChange鏂規硶錛屼細灝嗕竴涓簨浠跺彂閫佺粰鎵鏈夊凡緇忔敞鍐岀殑鐩戝惉鍣ㄣ傝鏂規硶鏈変笁涓弬鏁幫細灞炴х殑鍚嶅瓧銆佹棫鐨勫間互鍙婃柊鐨勫箋傚睘鎬х殑鍊煎繀欏繪槸瀵硅薄錛屽鏋滄槸綆鍗曟暟鎹被鍨嬶紝鍒欏繀欏昏繘琛屽寘瑁呫俵isteners.firePropertyChange("ourString", oldString, newString);<br /> <br /> <br /> 鎵鏈夋敞鍐岀殑鐩戝惉鍣ㄥ疄鐜癙ropertyChangeListener鎺ュ彛錛岃鎺ュ彛涓彧鏈変竴涓柟娉曘俻ublic void propertyChange(PropertyChangeEvent e)<br /> <br /> 褰揵ean鐨勫睘鎬у煎彂鐢熷彉鍖栨椂錛岃鏂規硶涓殑浠g爜灝變細琚Е鍙戙傚彲浠ラ氳繃e.getOldValue();<br /> e.getNewValue();<br /> <br /> 鏉ュ緱鍒癱hanges.firePropertyChange("ourString", oldString, newString);涓殑oldString鍜宯ewString銆?br /> <br /> 3錛庝負浠涔堣浣跨敤PropertyChangeSupport<br /> 浣跨敤榪欎釜綾葷鐞嗙洃鍚櫒鐨勫ソ澶勬槸錛屽畠鏄嚎紼嬪畨鍏ㄧ殑銆傚鏋滀嬌鐢ㄤ竴涓驚鐜綋鏉et Bean鐨勫睘鎬э紝鍒欒繖涓被鍙互淇濊瘉鎵鏈夌洃鍚櫒鎵ц瑙﹀彂浜嬩歡鐨勬湁搴忋?br /> 榪樻湁涓涓ソ澶勬槸錛岃繖涓被鏀寔fire甯︾儲寮曠殑灞炴ф敼鍙樹簨浠訛紙璇﹁java.bean.IndexedPropertyChangeEvent錛夈傛鏃跺悜娉ㄥ唽鐨勭洃鍚櫒鍙戦佷竴涓狿ropertyChangeEvent鐨勬柟娉曚負錛歷oid fireIndexedPropertyChange(String PropertyName,int index,Object oldValue,Object newValue)<br /> <br /> <br /> 4錛庡疄渚嬩唬鐮?<br /> <br /> public class SomeBean {<br /> <br /> private String property;<br /> <br /> private PropertyChangeSupport changeSupport;<br /> <br /> public void setProperty(String newValue) {<br /> <br /> String oldValue = property;<br /> <br /> property = newValue;<br /> <br /> changeSupport.firePropertyChange("property", oldValue, newValue);<br /> <br /> }<br /> <br /> public void addPropertyChangeListener(PropertyChangeListener l) {<br /> <br /> changeSupport.add(l);<br /> <br /> }<br /> <br /> public void removePropertyChangeListener(PropertyChangeListener l) {<br /> <br /> changeSupport.remove(l);<br /> <br /> }<br /> <br /> }</span></span><span style="font-family: "><br /> </span></span> <p><span style="font-size: 12pt"><span style="font-family: "><br /> </span></span></p> <p><span style="font-size: 12pt"><span>鏈榪戠湅浠g爜涓鐩寸鍒拌繖涓被錛屽厛鍋氫竴涓葷粨銆?br /> <br /> 鍏堢湅PropertyChangeSupport綾葷殑瀹樻柟鏂囨。瑙i噴錛?br /> This is a utility class that can be used by beans that support bound properties. You can use an instance of this class as a member field of your bean and delegate various work to it.<br /> <br /> 1錛庡叧鑱斿睘鎬?br /> 鍦↗avaBean鐨勮璁′腑錛屾寜鐓у睘鎬х殑涓嶅悓浣滅敤鍙堢粏鍒嗕負鍥涚被錛氬崟鍊煎睘鎬с佺儲寮曞睘鎬с佸叧鑱斿睘鎬с侀檺鍒跺睘鎬с傚叧鑱斿睘鎬э紝涔熺О涔嬩負緇戝畾灞炴с傜粦瀹氬睘鎬т細鍦ㄥ睘鎬у煎彂鐢熷彉鍖栨椂錛岄氱煡鎵鏈夌浉鍏崇殑鐩戝惉鍣ㄣ備負浜嗗疄鐜頒竴涓粦瀹氬睘鎬э紝蹇呴』瀹炵幇涓や釜鏈哄埗銆?br /> 1錛? 鏃犺浣曟椂錛屽彧瑕佸睘鎬х殑鍊煎彂鐢熷彉鍖栵紝璇ean蹇呴』鍙戦佷竴涓狿ropertyChange浜嬩歡緇欐墍鏈夊凡娉ㄥ唽鐨勭洃鍚櫒銆?br /> 2錛? 涓轟簡浣跨洃鍚櫒鑳藉娉ㄥ唽錛宐ean蹇呴』瀹炵幇浠ヤ笅涓や釜鏂規硶錛歷oid addPropertyChangeListener(PropertyChangeListener listener);<br /> void removePropertyChangerListener(PropertyChangerListener listener);<br /> <br /> <br /> <br /> 2錛庝嬌鐢≒ropertyChangeSupport綆$悊鐩戝惉鍣?br /> 鍙互閫氳繃java.bean鍖呬笅鐨凱ropertyChangeSupport綾繪潵綆$悊鐩戝惉鍣ㄣ傝浣跨敤榪欎釜綾伙紝bean蹇呴』鏈変竴涓綾葷殑鏁版嵁鍩熴俻rivate PropertyChangeSupport listeners = new PropertyChangeSupport(this);<br /> <br /> <br /> 榪欐牱鍙互灝嗘坊鍔犲拰縐婚櫎鐩戝惉鍣ㄧ殑浠誨姟浜ょ粰榪欎釜瀵硅薄銆俻ublic void addPropertyChangeListener(PropertyChangeListener listener) {<br /> listeners.addPropertyChangeListener(listener);<br /> }<br /> <br /> public void removePropertyChangeListener(PropertyChangeListener listener) {<br /> listeners.removePropertyChangeListener(listener);<br /> }<br /> <br /> <br /> 褰揵ean鐨勫睘鎬у彂鐢熷彉鍖栨椂錛屼嬌鐢≒ropertyChangeSupport瀵硅薄鐨刦irePropertyChange鏂規硶錛屼細灝嗕竴涓簨浠跺彂閫佺粰鎵鏈夊凡緇忔敞鍐岀殑鐩戝惉鍣ㄣ傝鏂規硶鏈変笁涓弬鏁幫細灞炴х殑鍚嶅瓧銆佹棫鐨勫間互鍙婃柊鐨勫箋傚睘鎬х殑鍊煎繀欏繪槸瀵硅薄錛屽鏋滄槸綆鍗曟暟鎹被鍨嬶紝鍒欏繀欏昏繘琛屽寘瑁呫俵isteners.firePropertyChange("ourString", oldString, newString);<br /> <br /> <br /> 鎵鏈夋敞鍐岀殑鐩戝惉鍣ㄥ疄鐜癙ropertyChangeListener鎺ュ彛錛岃鎺ュ彛涓彧鏈変竴涓柟娉曘俻ublic void propertyChange(PropertyChangeEvent e)<br /> <br /> 褰揵ean鐨勫睘鎬у煎彂鐢熷彉鍖栨椂錛岃鏂規硶涓殑浠g爜灝變細琚Е鍙戙傚彲浠ラ氳繃e.getOldValue();<br /> e.getNewValue();<br /> <br /> 鏉ュ緱鍒癱hanges.firePropertyChange("ourString", oldString, newString);涓殑oldString鍜宯ewString銆?br /> <br /> 3錛庝負浠涔堣浣跨敤PropertyChangeSupport<br /> 浣跨敤榪欎釜綾葷鐞嗙洃鍚櫒鐨勫ソ澶勬槸錛屽畠鏄嚎紼嬪畨鍏ㄧ殑銆傚鏋滀嬌鐢ㄤ竴涓驚鐜綋鏉et Bean鐨勫睘鎬э紝鍒欒繖涓被鍙互淇濊瘉鎵鏈夌洃鍚櫒鎵ц瑙﹀彂浜嬩歡鐨勬湁搴忋?br /> 榪樻湁涓涓ソ澶勬槸錛岃繖涓被鏀寔fire甯︾儲寮曠殑灞炴ф敼鍙樹簨浠訛紙璇﹁java.bean.IndexedPropertyChangeEvent錛夈傛鏃跺悜娉ㄥ唽鐨勭洃鍚櫒鍙戦佷竴涓狿ropertyChangeEvent鐨勬柟娉曚負錛歷oid fireIndexedPropertyChange(String PropertyName,int index,Object oldValue,Object newValue)<br /> <br /> <br /> 4錛庡疄渚嬩唬鐮?<br /> <br /> public class SomeBean {<br /> <br /> private String property;<br /> <br /> private PropertyChangeSupport changeSupport;<br /> <br /> public void setProperty(String newValue) {<br /> <br /> String oldValue = property;<br /> <br /> property = newValue;<br /> <br /> changeSupport.firePropertyChange("property", oldValue, newValue);<br /> <br /> }<br /> <br /> public void addPropertyChangeListener(PropertyChangeListener l) {<br /> <br /> changeSupport.add(l);<br /> <br /> }<br /> <br /> public void removePropertyChangeListener(PropertyChangeListener l) {<br /> <br /> changeSupport.remove(l);<br /> <br /> }<br /> <br /> }</span></span></p> <p> </p> <p> </p> <p><span style="font-size: 12pt"><span>鏈榪戠湅浠g爜涓鐩寸鍒拌繖涓被錛屽厛鍋氫竴涓葷粨銆?br /> </span></span><span style="font-size: 12pt"><span style><br /> 鍏堢湅PropertyChangeSupport綾葷殑瀹樻柟鏂囨。瑙i噴錛?br /> This is a utility class that can be used by beans that support bound properties. You can use an instance of this class as a member field of your bean and delegate various work to it.<br /> <br /> 1錛庡叧鑱斿睘鎬?br /> 鍦↗avaBean鐨勮璁′腑錛屾寜鐓у睘鎬х殑涓嶅悓浣滅敤鍙堢粏鍒嗕負鍥涚被錛氬崟鍊煎睘鎬с佺儲寮曞睘鎬с佸叧鑱斿睘鎬с侀檺鍒跺睘鎬с傚叧鑱斿睘鎬э紝涔熺О涔嬩負緇戝畾灞炴с傜粦瀹氬睘鎬т細鍦ㄥ睘鎬у煎彂鐢熷彉鍖栨椂錛岄氱煡鎵鏈夌浉鍏崇殑鐩戝惉鍣ㄣ備負浜嗗疄鐜頒竴涓粦瀹氬睘鎬э紝蹇呴』瀹炵幇涓や釜鏈哄埗銆?br /> 1錛? 鏃犺浣曟椂錛屽彧瑕佸睘鎬х殑鍊煎彂鐢熷彉鍖栵紝璇ean蹇呴』鍙戦佷竴涓狿ropertyChange浜嬩歡緇欐墍鏈夊凡娉ㄥ唽鐨勭洃鍚櫒銆?br /> 2錛? 涓轟簡浣跨洃鍚櫒鑳藉娉ㄥ唽錛宐ean蹇呴』瀹炵幇浠ヤ笅涓や釜鏂規硶錛歷oid addPropertyChangeListener(PropertyChangeListener listener);<br /> void removePropertyChangerListener(PropertyChangerListener listener);<br /> <br /> <br /> <br /> 2錛庝嬌鐢≒ropertyChangeSupport綆$悊鐩戝惉鍣?br /> 鍙互閫氳繃java.bean鍖呬笅鐨凱ropertyChangeSupport綾繪潵綆$悊鐩戝惉鍣ㄣ傝浣跨敤榪欎釜綾伙紝bean蹇呴』鏈変竴涓綾葷殑鏁版嵁鍩熴俻rivate PropertyChangeSupport listeners = new PropertyChangeSupport(this);<br /> <br /> <br /> 榪欐牱鍙互灝嗘坊鍔犲拰縐婚櫎鐩戝惉鍣ㄧ殑浠誨姟浜ょ粰榪欎釜瀵硅薄銆俻ublic void addPropertyChangeListener(PropertyChangeListener listener) {<br /> listeners.addPropertyChangeListener(listener);<br /> }<br /> <br /> public void removePropertyChangeListener(PropertyChangeListener listener) {<br /> listeners.removePropertyChangeListener(listener);<br /> }<br /> <br /> <br /> 褰揵ean鐨勫睘鎬у彂鐢熷彉鍖栨椂錛屼嬌鐢≒ropertyChangeSupport瀵硅薄鐨刦irePropertyChange鏂規硶錛屼細灝嗕竴涓簨浠跺彂閫佺粰鎵鏈夊凡緇忔敞鍐岀殑鐩戝惉鍣ㄣ傝鏂規硶鏈変笁涓弬鏁幫細灞炴х殑鍚嶅瓧銆佹棫鐨勫間互鍙婃柊鐨勫箋傚睘鎬х殑鍊煎繀欏繪槸瀵硅薄錛屽鏋滄槸綆鍗曟暟鎹被鍨嬶紝鍒欏繀欏昏繘琛屽寘瑁呫俵isteners.firePropertyChange("ourString", oldString, newString);<br /> <br /> <br /> 鎵鏈夋敞鍐岀殑鐩戝惉鍣ㄥ疄鐜癙ropertyChangeListener鎺ュ彛錛岃鎺ュ彛涓彧鏈変竴涓柟娉曘俻ublic void propertyChange(PropertyChangeEvent e)<br /> <br /> 褰揵ean鐨勫睘鎬у煎彂鐢熷彉鍖栨椂錛岃鏂規硶涓殑浠g爜灝變細琚Е鍙戙傚彲浠ラ氳繃e.getOldValue();<br /> e.getNewValue();<br /> <br /> 鏉ュ緱鍒癱hanges.firePropertyChange("ourString", oldString, newString);涓殑oldString鍜宯ewString銆?br /> <br /> 3錛庝負浠涔堣浣跨敤PropertyChangeSupport<br /> 浣跨敤榪欎釜綾葷鐞嗙洃鍚櫒鐨勫ソ澶勬槸錛屽畠鏄嚎紼嬪畨鍏ㄧ殑銆傚鏋滀嬌鐢ㄤ竴涓驚鐜綋鏉et Bean鐨勫睘鎬э紝鍒欒繖涓被鍙互淇濊瘉鎵鏈夌洃鍚櫒鎵ц瑙﹀彂浜嬩歡鐨勬湁搴忋?br /> 榪樻湁涓涓ソ澶勬槸錛岃繖涓被鏀寔fire甯︾儲寮曠殑灞炴ф敼鍙樹簨浠訛紙璇﹁java.bean.IndexedPropertyChangeEvent錛夈傛鏃跺悜娉ㄥ唽鐨勭洃鍚櫒鍙戦佷竴涓狿ropertyChangeEvent鐨勬柟娉曚負錛歷oid fireIndexedPropertyChange(String PropertyName,int index,Object oldValue,Object newValue)<br /> <br /> <br /> 4錛庡疄渚嬩唬鐮?<br /> <br /> public class SomeBean {<br /> <br /> private String property;<br /> <br /> private PropertyChangeSupport changeSupport;<br /> <br /> public void setProperty(String newValue) {<br /> <br /> String oldValue = property;<br /> <br /> property = newValue;<br /> <br /> changeSupport.firePropertyChange("property", oldValue, newValue);<br /> <br /> }<br /> <br /> public void addPropertyChangeListener(PropertyChangeListener l) {<br /> <br /> changeSupport.add(l);<br /> <br /> }<br /> <br /> public void removePropertyChangeListener(PropertyChangeListener l) {<br /> <br /> changeSupport.remove(l);<br /> <br /> }<br /> <br /> }<br /> <br /> <br /> </span></span></p> <span style="font-size: 12pt"><span style="font-family: "> </span></span> <img src ="http://www.tkk7.com/thisliy/aggbug/285832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/thisliy/" target="_blank">liyang</a> 2009-07-07 15:58 <a href="http://www.tkk7.com/thisliy/archive/2009/07/07/285832.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://kkk28.com" target="_blank">日本一区二区在线免费观看</a>| <a href="http://xsdjiagu.com" target="_blank">97青青草原国产免费观看</a>| <a href="http://bomilon.com" target="_blank">亚洲欧洲日产国码无码久久99</a>| <a href="http://djllgs.com" target="_blank">性色午夜视频免费男人的天堂</a>| <a href="http://zfzz008.com" target="_blank">亚洲婷婷第一狠人综合精品</a>| <a href="http://fenxue520.com" target="_blank">国产精品亚洲高清一区二区</a>| <a href="http://xjscr.com" target="_blank">我们的2018在线观看免费高清</a>| <a href="http://j3223.com" target="_blank">日韩在线观看免费</a>| <a href="http://977446.com" target="_blank">亚洲国产人成在线观看</a>| <a href="http://igao4.com" target="_blank">亚洲精品黄色视频在线观看免费资源</a>| <a href="http://laosanqq.com" target="_blank">亚洲免费一级视频</a>| <a href="http://zz1220.com" target="_blank">一级片在线免费看</a>| <a href="http://d3q4.com" target="_blank">亚洲AV成人影视在线观看</a>| <a href="http://hnkangshi.com" target="_blank">国产成人无码综合亚洲日韩</a>| <a href="http://ygloka.com" target="_blank">午夜dj在线观看免费视频</a>| <a href="http://av56cc.com" target="_blank">日韩免费在线视频</a>| <a href="http://c9133.com" target="_blank">视频一区二区三区免费观看</a>| <a href="http://uu313.com" target="_blank">亚洲国产成+人+综合</a>| <a href="http://22youjizz.com" target="_blank">国产亚洲一区二区精品</a>| <a href="http://pite2.com" target="_blank">日韩高清在线高清免费</a>| <a href="http://cih60o.com" target="_blank">免费A级毛片无码视频</a>| <a href="http://222xx8.com" target="_blank">免费无遮挡无码视频在线观看</a>| <a href="http://6266tv.com" target="_blank">亚洲午夜精品一区二区公牛电影院 </a>| <a href="http://6atb.com" target="_blank">亚洲AV无码国产剧情</a>| <a href="http://gxnnzk.com" target="_blank">亚洲AV本道一区二区三区四区</a>| <a href="http://cxljdz.com" target="_blank">国产一区视频在线免费观看</a>| <a href="http://szq18888.com" target="_blank">在线观看永久免费</a>| <a href="http://tc116.com" target="_blank">免费人成在线观看视频高潮</a>| <a href="http://9ts9.com" target="_blank">成人婷婷网色偷偷亚洲男人的天堂</a>| <a href="http://33303339.com" target="_blank">亚洲精品成人久久</a>| <a href="http://ztsf6688.com" target="_blank">亚洲一区二区三区自拍公司</a>| <a href="http://zhuoyueyc.com" target="_blank">国产自产拍精品视频免费看</a>| <a href="http://k5nn.com" target="_blank">嫖丰满老熟妇AAAA片免费看</a>| <a href="http://wwwkk2347.com" target="_blank">国产真人无码作爱视频免费</a>| <a href="http://8mav1007.com" target="_blank">羞羞视频免费网站日本</a>| <a href="http://gangxiangli.com" target="_blank">亚洲午夜无码久久久久小说</a>| <a href="http://18yinren.com" target="_blank">亚洲国产成人久久77</a>| <a href="http://079566.com" target="_blank">亚洲综合一区二区</a>| <a href="http://dcqzr.com" target="_blank">亚洲精品无码久久毛片波多野吉衣 </a>| <a href="http://ziniurj.com" target="_blank">**一级毛片免费完整视</a>| <a href="http://mangshigas.com" target="_blank">中文字幕无码毛片免费看</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>