亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Spring框架小白的蛻變

難度初級
時長 3小時50分
學習人數
綜合評分9.77
78人評價 查看評價
9.7 內容實用
9.8 簡潔易懂
9.8 邏輯清晰
  • 懶加載適用場景:

    如果某個Bean在程序整個運行周期都可能不會被使用,那么可考慮設定該Bean為懶加載。

    優點:盡可能的節省了資源。

    缺點:可能會導致某個操作響應時間增加。

    查看全部
    0 采集 收起 來源:Bean的懶加載

    2020-08-03

  • 實現懶加載的兩種方式:

    • 為某個Bean設置懶加載

    • 為所有Bean設置懶加載

    查看全部
    0 采集 收起 來源:Bean的懶加載

    2020-08-03

  • Bean的懶加載概念:

    Spring容器會在創建容器時,提前初始化Singleton(單例)作用域的bean,但是如果Bean被標注了lazy-init=“true,則該Bean只有在其在被需要的時候才會被初始化。

    注意:只對Singleton(單例)作用域的bean有效,其他作用域如多例并不知道什么這個bean才會被需要實例化。

    查看全部
    0 采集 收起 來源:Bean的懶加載

    2020-08-03

  • 代碼回顧

    SimpThreadScope

    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 代碼回顧

    自定義作用域(spring.xml部分)

    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 代碼回顧

    自定義作用域(自定義類部分)

    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 測試方法,如圖

    創建線程的方法為

    new?Thread(new?Runnable()?{
    ????@Override
    ????public?void?run()?{
    ????????Bean?bean?=?context.getBean("bean",Bean.class);
    ????????System.out.println("bean?=?"?+?bean);
    ????}
    }).start();


    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 使用SimpleThreadScope作用域

    該作用域的作用是,在每一個線程里spring會提供一個全新的實例。在同一個線程多次向spring上下文申請實例的時候spring會提供同一個實例。但如果在多個線程里面每一個線程都向spring上下文申請一個實例,那么spring會給每一個線程申請一個新的實例。

    先定義出SimpleThreadScope的實例

    <bean?class="org.springframework.context.support.SimpleThreadScope"?id="SimpleThreadScope"/>

    然后再在CustomScopeConfigurer的實例中加上

    <entry?key="simplethreadScope"?value-ref="SimpleThreadScope"/>
    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 在spring.xml中,修改

    ????<bean?class="com.imooc.spring.ioc.class009.MyScope"?id="myScope"/>
    ????<bean?class="org.springframework.context.support.SimpleThreadScope"?id="SimpleThreadScope"/>
    ????<bean?class="org.springframework.beans.factory.config.CustomScopeConfigurer">
    ????????<property?name="scopes">
    ????????????<map>
    ????????????????<entry?key="myScope"?value-ref="myScope"/>
    ????????????</map>
    ????????</property>
    ????</bean>
    
    ????<bean?id="bean"?class="com.imooc.spring.ioc.class009.Bean"?scope="myScope"/>
    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 自定義作用域

    需要引用Scope接口,注意是

    import?org.springframework.beans.factory.config.Scope;

    然后實現這個接口的方法。

    重點關注get 和 remove方法,如圖為實現雙例模式(每一個Bean對應兩個實例)。

    public?Object?get(String?s,?ObjectFactory<?>?objectFactory)?{
    ????if(!map1.containsKey(s)){
    ????????Object?o?=?objectFactory.getObject();
    ????????map1.put(s,o);
    ????????return?o;
    ????}
    ????if(!map2.containsKey(s)){
    ????????Object?o?=?objectFactory.getObject();
    ????????map2.put(s,o);
    ????????return?o;
    ????}
    ????//若map1?和?map2都存在s,則隨機返回一個
    ????int?i?=?new?Random().nextInt(2);//0?or?1
    ????if(i?==?0){
    ????????return?map1.get(s);
    ????}else?{
    ????????return?map2.get(s);
    ????}
    }
    
    public?Object?remove(String?s)?{
    ????if(map2.containsKey(s)){
    ????????Object?o=map2.get(s);
    ????????map2.remove(s);
    ????????return?o;
    ????}
    ????if(map1.containsKey(s)){
    ????????Object?o=map1.get(s);
    ????????map1.remove(s);
    ????????return?o;
    ????}
    ????return??null;
    }


    查看全部
    0 采集 收起 來源: 自定義作用域

    2020-08-03

  • 總結

    • reuqest:每個request請求都會創建一個單獨的實例。

    • session:每個session都會創建一個單獨的實例。

    • application:每個sercletContext都會創建一個單獨的實例。

    • websocket:每個websocket鏈接都會創建一個單獨的實例。

    查看全部
    0 采集 收起 來源:web相關作用域

    2020-08-03

  • 該測試需要配置好Tomcat...

    查看全部
    0 采集 收起 來源:web相關作用域

    2020-08-02

  • 之后在spring.xml中加上3個類的Bean

    查看全部
    0 采集 收起 來源:web相關作用域

    2020-08-02

  • 創建ApplicationController、RequestController、SessionController類

    修改RequestController類中代碼,如圖

    其余兩個類也做相同修改,只不同

    @RequestMapping("testApplication")
    @RequestMapping("testSession")


    查看全部
    0 采集 收起 來源:web相關作用域

    2020-08-02

  • 在web.xml中配置spring的web上下文環境

    查看全部
    0 采集 收起 來源:web相關作用域

    2020-08-02

舉報

0/150
提交
取消
課程須知
需要具備Java語法基礎,了解Java Web基礎知識。
老師告訴你能學到什么?
1、什么是IoC 2、Spring Bean的管理 3、什么是懶加載

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!