ioc容器初始化流程 spring bean class作用?
spring bean class作用?第一步功能Bean標(biāo)簽用于配置spring要?jiǎng)?chuàng)建的對(duì)象。默認(rèn)情況下,它調(diào)用類中的無參數(shù)構(gòu)造函數(shù)。如果沒有無參數(shù)構(gòu)造函數(shù),就無法成功創(chuàng)建。2.屬性Id:為容器中的
spring bean class作用?
第一步功能
Bean標(biāo)簽用于配置spring要?jiǎng)?chuàng)建的對(duì)象。
默認(rèn)情況下,它調(diào)用類中的無參數(shù)構(gòu)造函數(shù)。如果沒有無參數(shù)構(gòu)造函數(shù),就無法成功創(chuàng)建。
2.屬性
Id:為容器中的對(duì)象提供唯一的標(biāo)識(shí)符,用于獲取對(duì)象。
Class:指定類的完全限定類名,用于通過反射創(chuàng)建對(duì)象。默認(rèn)情況下,調(diào)用無參數(shù)構(gòu)造函數(shù)。
范圍:指定對(duì)象的范圍。
第二,Bean標(biāo)簽的屬性
bean標(biāo)記中的scope屬性用于描述Bean的范圍。這些值如下所示:
Singleton:默認(rèn)值,singleton。表示Spring Ioc容器中只有一個(gè)Bean實(shí)例。
原型:多實(shí)例。每次從Spring容器中獲取它,都會(huì)返回一個(gè)新的實(shí)例。
請(qǐng)求:在web項(xiàng)目中,Spring創(chuàng)建一個(gè)Bean的對(duì)象,并將該對(duì)象存儲(chǔ)在請(qǐng)求域中。
會(huì)話:在Web項(xiàng)目中,Spring創(chuàng)建一個(gè)Bean的對(duì)象,并將該對(duì)象存儲(chǔ)在會(huì)話域中。
全局會(huì)話:在web項(xiàng)目中,作用于集群環(huán)境(Porlet)的會(huì)話范圍(全局會(huì)話范圍)。如果沒有集群環(huán)境(Portlet),那么globalsession就相當(dāng)于session。
Init-method:指定類中初始化方法的名稱。
Destroy-method:指定類中銷毀方法名稱。
第三,Bean標(biāo)記的范圍屬性
范圍屬性測(cè)試描述
singletont對(duì)象只創(chuàng)建一次,它是在創(chuàng)建容器時(shí)創(chuàng)建的。
Prototypet每次被調(diào)用時(shí)都會(huì)創(chuàng)建一個(gè)新對(duì)象,它是在對(duì)象被調(diào)用時(shí)創(chuàng)建的。
每次發(fā)出HTTP請(qǐng)求時(shí),Requestt都會(huì)創(chuàng)建一個(gè)實(shí)例。
Sessiont為每個(gè)HTPP會(huì)話創(chuàng)建一個(gè)實(shí)例。
1.測(cè)試范圍“單例 "
Singleton:默認(rèn)值,singleton。表示Spring Ioc容器中只有一個(gè)B:xsi##34
txsi: schema location # # 34gt
tlt bean id # 34p # 34 class # # 34 cgtlt/b:
*tt測(cè)試Bean標(biāo)簽的范圍屬性。
* @ guoqianliang1998。
*/
公開課演示{
tpublic void testScope() {
ttApplicationContext ac新的ClassPathXmlApplicationContext(# 34 application cont:xsi##34
txsi: schema location # # 34gt
tlt bean id # 34p # 34 class # # 34 scop:
*tt測(cè)試Bean標(biāo)簽的范圍屬性。
* @ guoqianliang1998。
*/
公開課演示{
tpublic void testScope() {
ttApplicationContext ac新的ClassPathXmlApplicationContext(# 34 application context . XML # 34)
ttPerson p1(人員)(#34p#34)
ttPerson p2(人)(#34p#34)
ttPerson p3(人)(#34p#34)
(p1)
(第二頁)
(p3)
第四,scop:
*tt實(shí)體類人
* @ guoqianliang1998。
*/
公共類人員{
t私有字符串名稱
T//如果添加或刪除列表,可能會(huì)導(dǎo)致線程安全問題。
tpublic listltstringt list new arraylistltstringt()
T//無參數(shù)結(jié)構(gòu)
tppublic Person(){
t}
T//參數(shù)結(jié)構(gòu)
t公共人員(字符串名稱){
名字
t}
tpublic void talk(){
(# 34談話法...#34)
t}
}
如何領(lǐng)悟Java三大框架?
這三個(gè)框架基本上都是SSH或SSM。(圖片來自其他網(wǎng)站)
,Struts Spring Hibernate,這里面包包含了MVC的思想。其中Struts偏向視圖層,Hibernate偏向模型層,Spring是一個(gè)大容器,里面裝載了你需要的一切。Struts從前端到后臺(tái)的邏輯相當(dāng)于一個(gè)從外向內(nèi)的管道;Spring加載了所有要用的類和靜態(tài)數(shù)據(jù),通過注入的給你對(duì)象,不用去new每個(gè)類,用起來很方便。Hibernate其實(shí)就是數(shù)據(jù)持久層,把你從數(shù)據(jù)存儲(chǔ)的繁瑣操作中解救出來。在實(shí)際應(yīng)用中,可以通過操作一個(gè)對(duì)象來改變數(shù)據(jù)庫。
,Struts(SpringMVC) Spring Mybatis,現(xiàn)在常用的框架,只是用Mybatis代替了Hibernate。Hibernate操作更簡(jiǎn)單,但是控制性更強(qiáng)。MyBatis把數(shù)據(jù)控制交給程序員,自己寫SQL語句,但也省去了斷開數(shù)據(jù)庫的繁瑣操作,這是半自動(dòng)的。