欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring簡明分析Bean作用域

 更新時間:2022年07月04日 09:23:56   作者:RAIN 7  
scope用來聲明容器中的對象所應(yīng)該處的限定場景或者說該對象的存活時間,即容器在對象進(jìn)入其 相應(yīng)的scope之前,生成并裝配這些對象,在該對象不再處于這些scope的限定之后,容器通常會銷毀這些對象,這篇文章主要介紹了Spring中的Bean作用域,需要的朋友可以參考下

Bean作用域

  經(jīng)過前面的學(xué)習(xí),我們可以知道bean是存在作用域的。

  從spring的官方文檔中發(fā)現(xiàn)spring支持六種作用域,我們只需要重點(diǎn)認(rèn)識singleton、protoType即可,后面的作用域都是于web框架相關(guān)的。

一、singleton(單例模式)

  就和圖中的一樣,如果bean的作用域?yàn)閟ingleton,那么在IOC容器中只有每個bean只有一個唯一的實(shí)例被創(chuàng)建。

我們通過代碼來認(rèn)識一下,bean的單例模式

bean的作用域默認(rèn)是singleton,我們也可以手動通過在xml的bean中scope進(jìn)行設(shè)置。

<?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/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="pojo.User" scope="singleton"/>
</beans>

根據(jù)同一個bean 獲取兩次實(shí)例,查看實(shí)例是否相同

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user1 = context.getBean("user", User.class);
        User user2 = context.getBean("user",User.class);
        System.out.println(user1==user2);
    }

查看運(yùn)行結(jié)果

說明 這個Bean的作用域是單例模式,根據(jù)這個bean只能創(chuàng)建一個唯一的實(shí)例。

二、protoType(原型模式)

就和圖中的一樣,如果bean的作用域?yàn)閜rotoType,那么在IOC容器中每個bean都可以創(chuàng)建多個實(shí)例。

我們通過代碼來認(rèn)識一下,bean的原型模式

bean的作用域默認(rèn)是singleton,我們也可以手動通過在xml的bean中scope進(jìn)行設(shè)置成 protoType。

<?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/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="pojo.User" scope="prototype"/>
</beans>

根據(jù)同一個bean 獲取兩次實(shí)例,查看實(shí)例是否相同

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user1 = context.getBean("user", User.class);
        User user2 = context.getBean("user",User.class);
        System.out.println(user1==user2);
    }

查看運(yùn)行結(jié)果

說明了當(dāng)設(shè)置bean為 protoType時,一個bean可以創(chuàng)建多個不同的實(shí)例。

到此這篇關(guān)于Spring簡明分析Bean作用域的文章就介紹到這了,更多相關(guān)Spring Bean作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot application.yml使用@@pom文件配置問題

    springboot application.yml使用@@pom文件配置問題

    這篇文章主要介紹了springboot application.yml使用@@pom文件配置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • FactoryBean?BeanFactory方法使用示例詳解講解

    FactoryBean?BeanFactory方法使用示例詳解講解

    這篇文章主要為大家介紹了FactoryBean?BeanFactory方法使用示例詳解講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • java中實(shí)現(xiàn)對象排序的兩種方法(Comparable,Comparator)

    java中實(shí)現(xiàn)對象排序的兩種方法(Comparable,Comparator)

    這篇文章主要給大家介紹了關(guān)于java中實(shí)現(xiàn)對象排序的兩種方法,一種是實(shí)現(xiàn)Comparable進(jìn)行排序,另一種是實(shí)現(xiàn)Comparator進(jìn)行排序,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Kotlin基礎(chǔ)教程之操作符與操作符重載

    Kotlin基礎(chǔ)教程之操作符與操作符重載

    這篇文章主要介紹了Kotlin基礎(chǔ)教程之操作符與操作符重載的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Spring?boot?整合Logback過程示例解析

    Spring?boot?整合Logback過程示例解析

    這篇文章主要為大家介紹了Spring?boot?整合Logback的過程及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Spring JdbcTemplate整合使用方法及原理詳解

    Spring JdbcTemplate整合使用方法及原理詳解

    這篇文章主要介紹了Spring JdbcTemplate整合使用方法及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • springboot 中 inputStream 神秘消失之謎(終破)

    springboot 中 inputStream 神秘消失之謎(終破)

    這篇文章主要介紹了springboot 中 inputStream 神秘消失之謎,為了能夠把這個問題說明,我們首先需要從簡單的http調(diào)用說起,通過設(shè)置body等一些操作,具體實(shí)現(xiàn)代碼跟隨小編一起看看吧
    2021-08-08
  • Java使用字節(jié)流實(shí)現(xiàn)圖片音頻的復(fù)制

    Java使用字節(jié)流實(shí)現(xiàn)圖片音頻的復(fù)制

    今天帶大家學(xué)習(xí)Java的相關(guān)知識,文章圍繞著Java如何使用字節(jié)流實(shí)現(xiàn)圖片音頻的復(fù)制展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • Java內(nèi)存溢出的幾個區(qū)域總結(jié)(注意避坑!)

    Java內(nèi)存溢出的幾個區(qū)域總結(jié)(注意避坑!)

    內(nèi)存溢出是指應(yīng)用系統(tǒng)中存在無法回收的內(nèi)存或使用的內(nèi)存過多,最終使得程序運(yùn)行要用到的內(nèi)存大于虛擬機(jī)能提供的最大內(nèi)存,下面這篇文章主要給大家介紹了關(guān)于Java內(nèi)存溢出的幾個區(qū)域,總結(jié)出來給大家提醒注意避坑,需要的朋友可以參考下
    2022-11-11
  • Java高級特性之反射機(jī)制實(shí)例詳解

    Java高級特性之反射機(jī)制實(shí)例詳解

    這篇文章主要介紹了Java高級特性之反射機(jī)制,結(jié)合實(shí)例形式詳細(xì)分析了Java反射機(jī)制原理、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08

最新評論