java編程 usebean作用?
usebean作用?usebean是動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)JSP的一個(gè)元素,用于定位或示例一個(gè)javabeans組件,首先會(huì)試圖定位一個(gè)bean實(shí)例,如果這個(gè)bean不存在,那么就會(huì)從一個(gè)class或模版中進(jìn)行
usebean作用?
usebean是動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)JSP的一個(gè)元素,用于定位或示例一個(gè)javabeans組件,首先會(huì)試圖定位一個(gè)bean實(shí)例,如果這個(gè)bean不存在,那么就會(huì)從一個(gè)class或模版中進(jìn)行示例。
Spring為啥默認(rèn)把bean設(shè)計(jì)成單例的?
Spring作為當(dāng)下主流的Java框架,它涉及了很多設(shè)計(jì)模式,如:?jiǎn)卫J?、工廠模式、原型模式、模板模式、外觀模式等等,而Spring Bean默認(rèn)是被設(shè)計(jì)成單例模式的,為什么呢?
什么是單例Bean ?
要想弄清楚Spring Bean為什么默認(rèn)被設(shè)計(jì)成單例的,就需要先了解一下什么是單例模式。單例模式是最為常用的軟件設(shè)計(jì)模式,通過(guò)單例模式能保證一個(gè)類(lèi)只有一個(gè)對(duì)象實(shí)例。
單例Bean只有在第一次創(chuàng)建Bean時(shí)創(chuàng)建,以后此Bean都是復(fù)用的,不會(huì)頻繁的創(chuàng)建對(duì)象了。
單例Bean的優(yōu)點(diǎn)
Spring之所以把Bean默認(rèn)設(shè)計(jì)為單例的主要考慮還是性能!單例Bean優(yōu)點(diǎn)很多,比如說(shuō):
1、復(fù)用Bean之后減少了新生實(shí)例的性能消耗;
2、減少了JVM垃圾回收,因?yàn)锽ean少了,所以回收的對(duì)象也就少了;
3、可以更快的獲取到Bean,因?yàn)閱卫龑?duì)象生成后Spring就把它存入緩存了。
單例Bean的缺點(diǎn)
Bean默認(rèn)被設(shè)計(jì)為單例的,其實(shí)也是有缺點(diǎn)的,最大的缺點(diǎn)就是無(wú)法保證線程安全!若多個(gè)請(qǐng)求依懶同一個(gè)Bean實(shí)例,假設(shè)此Bean是有狀態(tài)的,那就會(huì)變得混亂,所以這塊要考慮好。
綜上,對(duì)于一般項(xiàng)目而言,單例Bean是最優(yōu)的選擇,不過(guò)在使用單例Bean時(shí)不要把Bean設(shè)計(jì)成有狀態(tài)的。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問(wèn)題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!