锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍏蟲敞鐐?Concern):
鍏蟲敞鐐逛篃灝辨槸鎴戜滑瑕佽冨療鎴栬В鍐崇殑闂.
鏍稿績(jī)鍏蟲敞鐐?鏄寚涓涓郴緇熶腑鐨勬牳蹇?jī)鍔熻?涔熷氨鏄竴涓郴緇熶腑璺熺壒瀹氫笟鍔¢渶姹傝仈緋繪渶绱у瘑鐨勫晢涓氶昏緫.
妯垏鍏蟲敞鐐?lt;浜ゅ弶鍏蟲敞鐐?gt;:鍒嗘暎鍦ㄦ瘡涓ā鍧椾腑瑙e喅鍚屼竴鏍風(fēng)殑闂鐨勫叧娉ㄧ偣.
鍒囬潰(Aspect):
鍒囬潰鏄叧娉ㄧ偣鐨勬ā鍧楀寲錛屽叧娉ㄧ偣鍙兘妯垏澶氫釜瀵硅薄銆傚畠闄や簡(jiǎn)鍖呮嫭灞炴с佹柟娉曚互澶栵紝鍚屾椂榪樺寘鎷垏鍏ョ偣Pointcut銆佸寮篈dvice絳夛紝鍙﹀錛屽垏闈腑榪樺彲浠ョ粰涓涓幇瀛樼殑綾繪坊鍔犲睘鎬с佹瀯閫犲嚱鏁幫紝鎸囧畾涓涓被瀹炵幇鏌愪竴涓帴鍙c佺戶鎵挎煇涓涓被絳夈?/p>
榪炴帴鐐?Join point):
榪炴帴鐐逛篃灝辨槸榪愮敤紼嬪簭鎵ц榪囩▼涓渶瑕佹彃鍏ュ垏闈㈡ā鍧楃殑鏌愪竴鐐?榪炴帴鐐逛富瑕佸己璋冪殑鏄竴涓叿浣撶殑"鐐?姒傚康.榪欎釜鐐瑰彲浠ユ槸涓涓柟娉曘佷竴涓睘鎬с佹瀯閫犲嚱鏁般佺被闈?rùn)鎬佸垵濮嬪寲鍧楋紝鐢氳嚦涓鏉¤鍙ャ?/p>
鍒囧叆鐐?Pointcuts):
鍒囧叆鐐規(guī)寚涓涓垨澶氫釜榪炴帴鐐癸紝鍙互鐞嗚В鎴愪竴涓偣鐨勯泦鍚堛?/p>
鍒囬潰:
鍏蟲敞鐐圭殑妯″潡鍖?鍏蟲敞鐐瑰彲鑳芥í鍒囧涓璞?
澧炲己鎴栭氱煡(Advice):
澧炲己(Advice)閲岄潰瀹氫箟浜?jiǎn)鍒囬潰涓殑瀹為檯閫昏緫(鍗沖疄鐜?,姣斿鏃ュ織鐨勫啓鍏ョ殑瀹為檯浠g爜錛屾垨鏄畨鍏ㄦ鏌ョ殑瀹為檯浠g爜銆傛垨鑰呰錛氬寮?Advice)鏄寚鍦ㄥ畾涔夊ソ鐨勫垏鍏ョ偣澶勶紝鎵瑕佹墽琛岀殑紼嬪簭浠g爜銆?br> 涓鑸儏鍐典笅澧炲己(閫氱煡)涓昏鏈夊墠澧炲己銆佸悗澧炲己銆佺幆緇曞寮轟笁縐嶅熀鏈被鍨嬨?br> 鍓嶅寮?Before advice)錛氭槸鎸囧湪榪炴帴鐐逛箣鍓嶏紝鍏堟墽琛屽寮轟腑鐨勪唬鐮?銆?br> 鍚庡寮?After advice)錛氭槸鎸囧湪榪炴帴鐐規(guī)墽琛屽悗錛屽啀鎵ц澧炲己涓殑浠g爜銆傚悗澧炲己涓鑸垎涓鴻繛鎺ョ偣姝e父榪斿洖澧炲己鍙?qiáng)杩炴帴鐐瑰紓甯笜q斿洖澧炲己絳夌被鍨嬨?br> 鐜粫澧炲己(Around advice)錛氭槸涓縐嶅姛鑳藉己澶х殑澧炲己錛屽彲浠ヨ嚜鐢辨敼鍙樼▼搴忕殑嫻佺▼錛岃繛鎺ョ偣榪斿洖鍊肩瓑銆傚湪鐜粫澧炲己涓嚭闄や簡(jiǎn)鍙互鑷敱娣誨姞闇瑕佺殑妯垏鍔熻兘浠ュ錛岃繕闇瑕佽礋璐d富鍔ㄨ皟鐢ㄨ繛鎺ョ偣(閫氳繃proceed)鏉ユ墽琛屾縺媧昏繛鎺ョ偣鐨勭▼搴忋?/p>
寮曚粙(Introduction):
寮曚粙鏄寚緇欎竴涓幇鏈夌殑綾繪坊鍔犳柟娉曟垨瀛楁灞炴э紝寮曚粙榪樺彲浠ュ湪涓嶆敼鍙樼幇鏈夌被浠g爜鐨勬儏鍐典笅錛岃鐜版湁鐨凧ava綾誨疄鐜版柊鐨勬帴鍙o紝鎴栬呬負(fù)鍏舵寚瀹氫竴涓埗綾諱粠鑰屽疄鐜板閲嶇戶鎵褲傜浉瀵逛簬澧炲己(Advice)鍙互鍔ㄦ佹敼鍙樼▼搴忕殑鍔熻兘鎴栨祦紼嬫潵璇達(dá)紝寮曚粙(Introduction)鍒欑敤鏉ユ敼鍙樹竴涓被鐨勯潤(rùn)鎬佺粨鏋勩?/p>
緇囧叆(Weaving):
緇囧叆鏄寚鎶婅В鍐蟲í鍒囬棶棰樼殑鍒囬潰妯℃澘錛屼笌緋葷粺涓殑鍏跺畠鏍稿績(jī)妯″潡閫氳繃涓瀹氱瓥鐣ユ垨瑙勫垯緇勫悎鍒頒竴璧風(fēng)殑榪囩▼銆傚湪Java棰嗗煙錛屼富瑕佸寘鎷互涓嬩笁縐嶇粐鍏ユ柟寮忥細(xì)
1銆佽繍琛屾椂緇囧叆錛氬嵆鍦↗AVA榪愯鐨勮繃紼嬩腑錛屼嬌鐢↗AVA鎻愪緵浠g悊鏉ュ疄鐜扮粐鍏ャ傛牴鎹唬鐞嗕駭鐢熸柟寮忕殑涓嶅悓錛岃繍琛屾椂緇囧叆鍙堝彲浠ヨ繘涓姝ュ垎涓?SE鍔ㄦ佷唬鐞嗗強(qiáng)鍔ㄦ佸瓧鑺傜爜鐢熸垚涓ょ鏂瑰紡銆傜敱浜嶫2SE鍔ㄦ佷唬鐞嗗彧鑳戒唬鐞嗘帴鍙o紝鍥犳錛岄渶瑕佸熷姪浜庝竴浜涘姩鎬佸瓧鑺傜爜鐢熸垚鍣ㄦ潵瀹炵幇瀵圭被鐨勫姩鎬佷唬鐞嗐傚ぇ澶氭暟AOP瀹炵幇閮芥槸閲囩敤榪欑榪愯鏃剁粐鍏ョ殑鏂瑰紡銆?br> 2銆佺被鍔犺澆鍣ㄧ粐鍏ワ細(xì)鎸囬氳繃鑷畾涔夌殑綾誨姞杞藉櫒錛屽湪铏氭嫙鏈篔VM鍔犺澆瀛楄妭鐮佺殑鏃跺欒繘琛岀粐鍏ャ?br> 3銆佺紪璇戝櫒緇囧叆錛氫嬌鐢ㄤ笓闂ㄧ殑緙栬瘧鍣ㄦ潵緙栬瘧鍖呮嫭鍒囬潰妯″潡鍦ㄥ唴鐨勬暣涓簲鐢ㄧ▼搴忥紝鍦ㄧ紪璇戠殑榪囩▼涓疄鐜扮粐鍏ワ紝榪欑緇囧叆鏄姛鑳芥渶寮哄ぇ鐨勩?/p>
鎷︽埅鍣?Interceptor):
鎷︽埅鍣ㄦ槸鐢ㄦ潵瀹炵幇瀵硅繛鎺ョ偣榪涜鎷︽埅錛屼粠鑰屽湪榪炴帴鐐瑰墠鎴栧悗鍔犲叆鑷畾涔夌殑鍒囬潰妯″潡鍔熻兘銆?/p>
鐩爣瀵硅薄(Target object):
鎸囧湪鍩轟簬鎷﹁澆鍣ㄦ満鍒跺疄鐜扮殑AOP妗嗘灦涓紝浣嶄簬鎷︽埅鍣ㄩ摼涓婃渶鏈鐨勫璞″疄渚嬨備竴鑸儏鍐典笅錛屾嫤鎴櫒鏈閮藉寘鍚竴涓洰鏍囧璞★紝閫氬父涔熷氨瀹為檯涓氬姟瀵硅薄銆傚綋鐒?dòng)灱屼篃鍙互涓嶄娇鐢ㄧ洰鏍囧璞″Q岀洿鎺ユ妸澶氫釜鍒囬潰妯″潡緇勭粐鍒頒竴璧鳳紝褰㈡垚涓涓畬鏁存渶緇堝簲鐢ㄧ▼搴忥紝鏁翠釜緋葷粺瀹屽叏浣跨敤鍩轟簬AOP緙栫▼鏂規(guī)硶瀹炵幇錛岃繖縐嶆儏鍐靛皯瑙併?nbsp;
AOP浠g悊(Proxy):
AOP浠g悊鏄寚鍦ㄥ熀浜庢嫤鎴櫒鏈哄埗瀹炵幇鐨凙OP妗嗘灦涓紝瀹為檯涓氬姟瀵硅薄鐨勪唬鐞嗗璞°傝繖涓唬鐞嗗璞′竴鑸々鍒囬潰妯″潡寮曠敤錛孉OP鐨勫垏闈㈤昏緫姝f槸鎻掑叆鍦ㄤ唬鐞嗗璞′腑鏉ユ墽琛岀殑銆侫OP浠g悊鐨勫寘鎷琂2SE鐨勪唬鐞嗕互鍙?qiáng)鍏跺畠瀛楄妭鐮佺敓鎴愬伐鍏风敓鎴愮殑浠g悊涓たU嶇被鍨嬨?/p>
闈㈠悜瀵硅薄緙栫▼(OOP)瑙e喅闂鐨勯噸鐐瑰湪浜庡鍏蜂綋棰嗗煙妯″瀷鐨勬娊璞★紝鑰岄潰鍚戝垏闈㈢紪紼?AOP)瑙e喅闂鐨勫叧閿垯鍦ㄤ簬瀵瑰叧娉ㄧ偣鐨勬娊璞°?/p>
Spring-AOP:浣跨敤鍩轟簬浠g悊鍙?qiáng)鎷︽埅鍣ㄧ殑鏈哄?涓嶴pring IOC瀹瑰櫒铻嶅叆涓浣撶殑AOP妗嗘灦.Spring AOP閲囩敤榪愯鏃?nbsp; 緇囧叆鏂瑰紡,浣垮緱鍙互鍦ㄥ熀浜?/p>
Sping妗嗘灦鐨勫簲鐢ㄧ▼搴忎腑浣跨敤鍚勭澹版槑寮忕郴緇熺駭鏈嶅姟.
1銆乿alue鍏冪礌
<value/>鍏冪礌閫氳繃瀛楃涓叉潵鎸囧畾灞炴ф垨鏋勯犲櫒鍙傛暟鐨勫箋?/p>
<bean id="myDataSource" detroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
聽<property name="driverClassName">
聽聽<value>com.mysql.jdbc.Driver</value>
聽</proerpty>
聽<property name="url">
聽聽<value>jdbc:mysql://localhost:3306/mydb</value>
聽</property>
聽<property name="username">
聽聽<vlaue>root</value>
聽</property>
</bean>
2銆乮dref鍏冪礌
idref鍏冪礌鐢ㄦ潵灝嗗鍣ㄥ唴鍏跺畠bean鐨刬d浼犵粰<constructor-arg/>鎴?lt;property/>鍏冪礌錛屽悓鏃舵彁渚涢敊璇毦鍔熻兘銆?/p>
<bean id="theTargetBean" class="..."/>
<bean id="theClientBean" class="...">
聽<property name="targetName">
聽聽<idref bean="theTargetBean" />
聽</property>
</bean>
絳夊悓浜?
<bean id="theTargetBean" class="..." />
<bean id="theClientBean" class="...">
聽<property name="targetName">
聽聽<value>theTargetBean</value>
聽</property>
</bean>
浣跨敤idref鏍囪鍏佽瀹瑰櫒鍦ㄩ儴緗叉椂楠岃瘉鎵琚紩鐢ㄧ殑bean鏄惁瀛樺湪銆傛澶栵紝濡傛灉琚紩鐢ㄧ殑bean鍦ㄥ悓涓XML鏂囦歡鍐咃紝涓攂ean鍚嶅瓧灝辨槸bean id,閭d箞鍙互浣跨敤local灞炴с?br />姝ゅ睘鎬у厑璁竂ML瑙f瀽鍣ㄥ湪瑙f瀽XML鏂囦歡鏃舵潵瀵瑰紩鐢ㄧ殑bean榪涜楠岃瘉銆?/p>
<property name="targetName">
聽<idref local="theTargetBean" />
</property>
3銆乺ef鍏冪礌
褰㈠紡涓錛?lt;ref bean="someBean">
榪欐槸鏈甯歌鐨勫艦寮忔槸閫氳繃浣跨敤ref鏍囪鎸囧畾bean灞炴х殑鐩爣bean錛岄氳繃璇ユ爣絳懼彲浠ュ紩鐢ㄥ悓涓瀹瑰櫒鎴栫埗瀹瑰櫒鍐呯殑浠諱綍bean錛堟棤璁烘槸鍚﹀湪鍚屼竴XML鏂囦歡涓級(jí)銆?br />XML鈥榖ean鈥欏厓绱犵殑鍊煎嵆鍙互鏄寚瀹氱殑bean鐨刬d鍊間篃鍙互鏄叾name鍊箋?/p>
褰㈠紡浜岋細(xì)<ref local="someBean">
浣跨敤ref鐨刲ocal灞炴ф寚瀹氱洰鏍嘼ean錛屽畠鍙互鍒╃敤XML瑙f瀽鍣ㄦ潵闅炬墍寮曠敤鐨刡ean鏄惁瀛樺湪鍚屼竴鏂囦歡涓俵ocal灞炴у煎繀欏繪槸鐩爣bean鐨刬d灞炴у箋?/p>
褰㈠紡涓夛細(xì)<bean parent="someBean">
閫氳繃浣跨敤ref鐨刾arent灞炴ф潵寮曠敤褰撳墠紿楀彛鐨勭埗瀹瑰櫒涓殑bean銆俻arent灞炴у煎嵆鍙互鏄洰鏍嘼ean鐨刬d鍊鹼紝涔熷彲浠ユ槸name灞炴у箋?/p>
4銆佸唴閮?bean:
鎵璋撳唴閮╞ean(inner bean)鏄寚鍦ㄤ竴涓猙ean鐨?lt;property/>鎴?lt;constructor-arg/>涓嬌鐢?lt;bean/>鍏冪礌瀹氫箟鐨刡ean.鍐呴儴bean涓嶉渶瑕佹湁id鎴杗ame灞炴э紝鍗充嬌鏈変篃浼?xì)琚H楀彛蹇界暐.
鍐呴儴bean鎬繪槸鍖垮悕鐨勪笖瀹冧滑鎬繪槸prototype妯″紡鐨?鍚屾椂灝嗗唴閮╞ean娉ㄥ叆鍒板寘鍚鍐呴儴bean涔嬪鐨刡ean鏄笉鍙兘鐨?
<bean id="outer" class="...">
聽<property name="target">
聽聽<bean class="com.mycoompany.Person">
聽聽聽<property name="name" value="Fiona Apple"/>
聽聽聽<property name="age" value="25"/>
聽聽</bean>
聽</property>
</bean>
5銆侀泦鍚堝悎騫訛細(xì)
浠嶴pring2.0寮濮嬶紝Spring IoC瀹瑰櫒灝嗘敮鎸侀泦鍚堢殑鍚堝茍銆傜埗瀛愰泦鍚堝厓绱犲悎騫跺悗鐨勫煎氨鏄瓙闆嗗悎涓殑鏈緇堢粨鏋滐紝鑰屼笖瀛愰泦鍚堜腑鐨勫厓绱犲煎皢瑕嗙洊鐖墮泦鍚堜腑鐨勫搴旂殑鍊箋?br /><beans>
<bean id="parent" abstract="true" class="example.ComplexObject">
聽<property name="adminEmails">
聽聽<props>
聽聽聽<prop key="administrator">administrator@somecompany.com</prop>
聽聽聽<prop key="support">support@somecompany.com</prop>
聽聽</props>
聽</property>
</bean>
<bean id="child" parent="parent">
聽<property name="adminEmails">
聽聽<props merge="trur">
聽聽聽<prop key="sales">sales@somecompany.com</prop>
聽聽聽<prop key="support">support@somecompany.co.uk</prop>
聽聽</props>
聽</property>
</bean>
</beans>
鍚堝茍鍚庡唴瀹癸細(xì)
administrator=administrator@somecompany.com
sales=sales@somecompany.com
support=support@somecompany.co.uk
list闆嗗悎鏈夋帓搴忓姛鑳斤紝鐖禸ean鐨勫垪琛ㄥ唴瀹瑰皢鎺掑湪瀛恇ean鍒楄〃鍐呭鐨勫墠闈紱
merge灞炴у繀欏誨湪緇ф壙鐨勫瓙bean涓畾涔夈?/p>
6銆丯ulls
<null/>鐢ㄤ簬澶勭悊null鍊箋係pring浼?xì)鎶婂睘鎬х殑絀哄弬鏁板綋浣滅┖瀛楃涓插鐞嗐?/p>
<bean class="ExampleBean">
聽<property name="email">
聽聽<value></value>
聽</property>
</bean>
絳夊悓浜?/p>
excapleBean.setEamil("");
鑰宯ull鍊煎垯鍙互浣跨敤<null/>鍏冪礌鏉ヨ〃紺猴細(xì)
<bean class="ExampleBean">
聽<property name="email"><null/></property>
</bean>
7銆佺畝鍐欙細(xì)
閽堝甯歌鐨剉alue鍊兼垨bean鐨勫紩鐢紝Spring鎻愪緵浜?jiǎn)绠鍖栨牸寮忕敤浜庢浛浠?lt;value/>鍜?lt;ref/>鍏冪礌銆?br /><property/>銆?lt;constructor-arg/>銆?lt;entry/>鍏冪礌閮芥敮鎸乿alue灞炴э紝瀹冨彲浠ョ敤鏉ユ浛浠e唴宓岀殑<value/>鍏冪礌銆?/p>
<property name="myProperty">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽<value>hello</value>聽聽聽聽聽聽聽聽聽聽 =====聽聽聽聽聽聽聽聽聽聽聽 <property name="myProperty" value="helo" />
</property>
<constructor-arg>
聽<value>hello</value>聽聽聽聽聽聽聽聽聽聽 =====聽聽聽聽聽聽聽聽聽聽聽 <constructor-arg value="hello" />
</construtctor-arg>
<entry key="myKey">
聽<value>hello</value>聽聽聽聽聽聽聽聽聽聽 =====聽聽聽聽聽聽聽聽聽聽聽 <entry key="myKey" value="hello" />
</entry>
<property/>鍜?lt;constructor-arg/>鏀寔綾諱技鐨勭畝鍐欏睘鎬ef錛屽畠鍙互鏇挎壘鏁翠釜鍐呭祵鐨?lt;/ref>鍏冪礌銆?/p>
<property name="myProperty">
聽<ref bean="myBean">聽聽聽聽聽聽聽聽聽聽聽 =====聽聽聽聽聽聽聽聽聽聽聽 <property name="myProperty" ref="myBean" />
</property>
<constructor-arg>
聽<ref bean="myBean">聽聽聽聽聽聽聽聽聽聽聽 =====聽聽聽聽聽聽聽聽聽聽聽 <constructor-arg ref="myBean" />
</constructor-arg>
鍒囪錛氬敖綆″瓨鍦ㄧ瓑鍚屼簬<ref bean="xxx" >鍏冪礌鐨勭畝鍐欏艦寮忥紝浣嗗茍娌℃湁<ref local="xxx">鐨勭畝鍐欏艦寮忋?/p>
map涓殑entry鍏冪礌鐨勭畝鍐欏艦寮忎負(fù)key/key-ref鍜寁alue/value-ref灞炴с?/p>
<entry>
聽<key>
聽聽<ref bean="myKeyBean" />聽聽聽聽聽聽聽聽聽聽聽 =====聽聽聽聽聽聽聽聽聽 <entry key-ref="myKeyBean" value-ref="myValueBean" />
聽</key>
聽<ref bean="myValueBean" />
</entry>
8銆佺粍鍚堝睘鎬у悕縐?/strong>
褰撹緗産ean鐨勭粍鍚堝睘鎬ф椂錛岄櫎浜?jiǎn)鏈鍚庝竴涓嬪睘鎬у錛屽彧瑕佸叾浠栧睘鎬у間笉涓簄ull錛岀粍鍚堟垨宓屽灞炴у悕鏄畬鍏ㄥ悎娉曠殑銆?/p>
<bean id="foo" class="foo.Bar">
聽<property name="fred.bob.sammy" value="123" />
</bean>
9銆乨epends-on灞炴э細(xì)
depends-on灞炴у彲浠ョ敤浜庡綋鍓峛ean鍒濆鍖栦箣鍓嶆樉寮忕殑寮哄埗涓涓垨澶氫釜bean琚垵濮嬪寲銆?/p>
<bean id="beanOne" class="ExampleBean" depends-on="manager">
聽<property name="manager" ref="manager" />
</bean>
<bean id="manager" class="ManagerBean" />
鑻ラ渶瑕佽〃杈懼澶氫釜bean鐨勪緷璧栵紝鍙皯璁ゅ湪<depends-on />涓皢鎸囧畾鐨勫涓猙ean鍚嶅瓧鐢ㄥ垎闅旂榪涜鍒嗛殧錛屽垎闅旂鍙互鏄楀彿銆佺┖鏍煎強(qiáng)鍒嗗彿絳夈?/p>
<bean id="beanOne" class="ExampleBean" depends-on="manager,accountDao">
聽<property name="manager" ref="manager" />
</bean>
<bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />
10銆佸歡榪熷垵濮嬪寲bean--lazy-init 灞炴э細(xì)
<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true">
聽<!-- various properties here... -->
</bean>
<bean name="noo.lazy" class="com.foo.AnotherBean">
聽<!-- various properties here... -->
</bean>
濡傛灉涓涓猙ean琚緗負(fù)寤惰繜鍒濆鍖栵紝鑰屽彟涓涓潪寤惰繜鍒濆鍖栫殑singleton bean渚濊禆浜庡畠錛岄偅涔堝綋ApplicationContext鎻愬墠瀹炰緥鍖杝ingleton bean鏃訛紝瀹冨繀欏諱篃紜繚鎵鏈変笂榪皊ingleton渚濊禆bean涔熻棰勫厛鍒濆鍖栵紝褰撶劧涔熷寘鎷緗負(fù)寤惰繜瀹炰緥鍖栫殑bean.
鍦ㄥ鍣ㄥ眰嬈′腑閫氳繃鍦?lt;beans />鍏冪礌涓婁嬌鐢ㄢ榙efault-lazy-init鈥欏睘鎬ф潵鎺у埗寤惰繜鍒濆鍖栦篃鏄彲鑳界殑銆?br /><beans default-lazy-init="true">
聽<!-- no beans will be eagerly pre-instantiated... -->
</beans>
11銆乤utowire<鑷姩瑁呴厤> 灞炴э細(xì)
妯″紡聽聽聽聽聽璇存槑
no聽聽聽聽聽聽涓嶄嬌鐢ㄨ嚜鍔ㄨ閰嶏紝蹇呴』閫氳繃ref鍏冪礌鎸囧畾渚濊禆錛岃繖鏄粯璁よ緗?/p>
byName聽聽聽聽聽鏍規(guī)嵁灞炴у悕鑷姩瑁呴厤銆係pring灝嗘鏌ュ鍣ㄥ茍鏍規(guī)嵁鍚嶅瓧鏌ユ壘涓庡睘鎬у畬鍏ㄤ竴鑷寸殑bean錛屽茍灝嗗叾涓庡睘鎬ц嚜鍔ㄨ閰嶃?/p>
byType聽聽聽聽聽濡傛灉瀹瑰櫒涓瓨鍦ㄤ竴涓笌鎸囧畾灞炴х被鍨嬬浉鍚岀殑bean錛岄偅涔堝皢涓庤灞炴ц嚜鍔ㄨ閰嶃傚鏋滃瓨鍦ㄥ涓紝鍒欐姏鍑哄紓甯搞?/p>
constructor聽聽聽聽涓巄yType鐨勬柟寮忕被浼鹼紝涓嶅悓涔嬪鍦ㄤ簬瀹冨簲鐢ㄤ簬鏋勯犲櫒鍙傛暟銆傚鏋滃湪瀹瑰櫒涓湭鎵懼埌涓庢瀯閫犲櫒鍙傛暟綾誨瀷涓鑷寸殑bean錛岄偅涔堝皢鎶涘嚭寮傚父銆?/p>
autodetect聽聽聽聽閫氳繃bean綾葷殑鑷渷鏈哄埗(introspection)鏉ュ喅瀹氭槸浣跨敤constructor榪樻槸byType鏂瑰紡榪涜鑷姩瑁呴厤銆傚鏋滃彂鐜伴粯璁ょ殑鏋勯犲櫒錛岄偅涔堝皢浣跨敤byType鏂瑰紡銆?/p>
--閫氳繃璁劇疆<bean />鍏冪礌鐨刟utowire-candidate="false"錛屽彲浠ラ拡瀵瑰崟涓猙ean璁劇疆鍏舵槸鍚︿負(fù)琚嚜鍔ㄨ閰嶅璞°?/p>
12銆乨ependency-check <渚濊禆媯(gè)鏌?gt; 灞炴э細(xì)
姝ゅ睘鎬х敤浜庢鏌ean瀹氫箟涓疄闄呭睘鎬у肩殑璁劇疆銆?/p>
妯″紡聽聽聽聽聽璇存槑
none聽聽聽聽聽娌℃湁渚濊禆媯(gè)鏌ワ紝濡傛灉bean鐨勫睘鎬ф病鏈夊肩殑璇濆彲浠ヤ笉鐢ㄨ緗?/p>
simple聽聽聽聽聽瀵逛簬鍘熷綾誨瀷鍙?qiáng)闆嗗?闄ゅ崗浣滆呭鐨勪竴鍒囦笢瑗?鎵ц渚濊禆媯(gè)鏌ャ?/p>
object聽聽聽聽聽浠呭鍗忎綔鑰呮墽琛屼緷璧栨鏌ュ憳銆?/p>
all聽聽聽聽聽聽瀵瑰崗浣滆咃紝鍘熷綾誨瀷鍙?qiáng)闆嗗悎鎵ц渚濊禆妫鏌ャ?/p>