日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring学习笔记02-spring-bean创建的细节问题

發(fā)布時(shí)間:2024/7/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring学习笔记02-spring-bean创建的细节问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

spring學(xué)習(xí)筆記02-spring-bean創(chuàng)建的細(xì)節(jié)問題

  • 三種創(chuàng)建Bean對象的方式
  • Bean的作用范圍
  • Bean的生命周期
  • <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--把對象的創(chuàng)建交給spring來管理--><!--spring對bean的管理細(xì)節(jié)1.創(chuàng)建bean的三種方式2.bean對象的作用范圍3.bean對象的生命周期--><!--創(chuàng)建Bean的三種方式 --><!-- 第一種方式:使用默認(rèn)構(gòu)造函數(shù)創(chuàng)建。在spring的配置文件中使用bean標(biāo)簽,配以id和class屬性之后,且沒有其他屬性和標(biāo)簽時(shí)。采用的就是默認(rèn)構(gòu)造函數(shù)創(chuàng)建bean對象,此時(shí)如果類中沒有默認(rèn)構(gòu)造函數(shù),則對象無法創(chuàng)建。<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"></bean>--><!-- 第二種方式: 使用普通工廠中的方法創(chuàng)建對象(使用某個(gè)類中的方法創(chuàng)建對象,并存入spring容器)<bean id="instanceFactory" class="com.itheima.factory.InstanceFactory"></bean><bean id="accountService" factory-bean="instanceFactory" factory-method="getAccountService"></bean>--><!-- 第三種方式:使用工廠中的靜態(tài)方法創(chuàng)建對象(使用某個(gè)類中的靜態(tài)方法創(chuàng)建對象,并存入spring容器)<bean id="accountService" class="com.itheima.factory.StaticFactory" factory-method="getAccountService"></bean>--><!-- bean的作用范圍調(diào)整bean標(biāo)簽的scope屬性:作用:用于指定bean的作用范圍取值: 常用的就是單例的和多例的singleton:單例的(默認(rèn)值)prototype:多例的request:作用于web應(yīng)用的請求范圍session:作用于web應(yīng)用的會(huì)話范圍<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl" scope="prototype"></bean>--><!-- bean對象的生命周期單例對象出生:當(dāng)容器創(chuàng)建時(shí)對象出生活著:只要容器還在,對象一直活著死亡:容器銷毀,對象消亡總結(jié):單例對象的生命周期和容器相同多例對象出生:當(dāng)我們使用對象時(shí)spring框架為我們創(chuàng)建活著:對象只要是在使用過程中就一直活著。死亡:當(dāng)對象長時(shí)間不用,且沒有別的對象引用時(shí),由Java的垃圾回收器回收--><bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"scope="prototype" init-method="init" destroy-method="destroy"></bean> </beans>

    相關(guān)代碼:

    ps:關(guān)于Bean的創(chuàng)建第二種,第三種方法適用于在無法修改源碼的情況下,比如當(dāng)我們引用別人寫好的jar包,此時(shí)這個(gè)jar包中可能沒有相關(guān)的構(gòu)造函數(shù),但是有其他的返回對象的方法。

    • 創(chuàng)建bean的第二種方式,“使用普通工廠中的方法創(chuàng)建對象”中的“普通工工廠”
    package com.itheima.factory;import com.itheima.service.IAccountService; import com.itheima.service.impl.AccountServiceImpl;/*** 模擬一個(gè)工廠類(該類可能是存在于jar包中的,我們無法通過修改源碼的方式來提供默認(rèn)構(gòu)造函數(shù))*/ public class InstanceFactory {public IAccountService getAccountService(){return new AccountServiceImpl();} }
    • 創(chuàng)建bean的第三種方式,“使用工廠中的靜態(tài)方法創(chuàng)建對象”中的“靜態(tài)工廠”
    package com.itheima.factory;import com.itheima.service.IAccountService; import com.itheima.service.impl.AccountServiceImpl;/*** 模擬一個(gè)工廠類(該類可能是存在于jar包中的,我們無法通過修改源碼的方式來提供默認(rèn)構(gòu)造函數(shù))*/ public class StaticFactory {public static IAccountService getAccountService(){return new AccountServiceImpl();} }

    總結(jié)

    以上是生活随笔為你收集整理的spring学习笔记02-spring-bean创建的细节问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。