大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

面試題首頁 > Spring面試題

Spring設計模式面試題

001Spring中單例模式體現?

單例模式應該是大家印象最深的一種設計模式了。在Spring中最明顯的使用場景是在配置文件中配置注冊bean對象的時候設置scope的值為singleton 。

<bean class="com.bjpowernode.pojo.User" id="user" scope="singleton">
    <property name="name" value="張三"></property>
</bean>

002Spring中原型模式體現?

原型模式也叫克隆模式,Spring中該模式使用的很明顯,和單例一樣在bean標簽中設置scope的屬性prototype即表示該bean以克隆的方式生成

<bean class="com.bjpowernode.pojo.User" id="user" scope="prototype">
    <property name="name" value="張三"></property>
</bean>

003Spring中模板模式體現?

模板模式的核心是父類定義好流程,然后將流程中需要子類實現的方法就抽象話留給子類實現,Spring中的JdbcTemplate就是這樣的實現。我們知道jdbc的步驟是固定
1)加載驅動,
2)獲取連接通道,
3)構建sql語句.
4)執行sql語句,
5)關閉資源
在這些步驟中第3步和第4步是不確定的,所以就留給客戶實現,而我們實際使用JdbcTemplate的時候也確實是只需要構建SQL就可以了.這就是典型的模板模式。我們以query方法為例來看下JdbcTemplate中的代碼.

004Spring中觀察者模式體現?

觀察者模式定義的是對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。使用比較場景是在監聽器中而spring中Observer模式常用的地方也是listener的實現。如ApplicationListener.

005Spring中工廠模式體現?

簡單工廠模式:就是通過工廠根據傳遞進來的參數決定產生哪個對象。Spring中我們通過getBean方法獲取對象的時候根據id或者name獲取就是簡單工廠模式了。

<context:annotation-config/>
<bean class="com.bjpowernode.pojo.User" id="user"  >
  <property name="name" value="張三"></property>
</bean>

工廠方法模式:在Spring中我們一般是將Bean的實例化直接交給容器去管理的,實現了使用和創建的分離,這時容器直接管理對象,還有種情況是,bean的創建過程我們交給一個工廠去實現,而Spring容器管理這個工廠。這個就是我們講的工廠模式,在Spring中有兩種實現一種是靜態工廠方法模式,一種是動態工廠方法模式。以靜態工廠來演示

/**
* User 工廠類
*
*/
public class UserFactory {
    
    /**
    * 必須是static方法
    * @return
    */
    public static UserBean getInstance(){
        return new UserBean();
    }
}

006Spring中適配器模式體現?

將一個類的接口轉換成客戶希望的另外一個接口。使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作。這就是適配器模式。在Spring中在AOP實現中的Advice和interceptor之間的轉換就是通過適配器模式實現的。

class MethodBeforeAdviceAdapter implements AdvisorAdapter, Serializable {
    
    @Override
    public boolean supportsAdvice(Advice advice) {
        return (advice instanceof MethodBeforeAdvice);
    }
    
    @Override
    public MethodInterceptor getInterceptor(Advisor advisor) {
        MethodBeforeAdvice advice = (MethodBeforeAdvice) advisor.getAdvice();
        // 通知類型匹配對應的攔截器
        return new MethodBeforeAdviceInterceptor(advice);
    }
}

007Spring中裝飾者模式體現?

裝飾者模式:裝飾者模式又稱為包裝模式(Wrapper),作用是用來動態的為一個對象增加新的功能。裝飾模式是一種用于代替繼承的技術,無須通過繼承增加子類就能擴展對象的新功能。使用對象的關聯關系代替繼承關系,更加靈活,同時避免類型體系的快速膨脹。
spring中用到的包裝器模式在類名上有兩種表現:一種是類名中含有Wrapper,另一種是類名中含有Decorator。基本上都是動態地給一個對象添加一些額外的職責。
具體的使用在Spring session框架中的SessionRepositoryRequestWrapper使用包裝模式對原生的request的功能進行增強,可以將session中的數據和分布式數據庫進行同步,這樣即使當前tomcat崩潰,session中的數據也不會丟失。

<dependency>
	<groupId>org.springframework.session</groupId>
	<artifactId>spring-session</artifactId>
	<version>1.3.1.RELEASE</version>
</dependency>

008Spring中其它設計模式體現?

代理模式:Spring的AOP功能用到了JDK的動態代理和CGLIB字節碼生成技術
策略模式:例如Resource的實現類,針對不同的資源文件,實現了不同方式的資源獲取策略。
責任鏈模式:AOP中的攔截器鏈
委托者模式:DelegatingFilterProxy,整合Shiro,SpringSecurity的時候都有用到。
橋接模式:可以根據客戶的需求能夠動態切換不同的數據源。比如我們的項目需要連接多個數據庫,客戶在每次訪問中根據需要會去訪問不同的數據庫。

目錄

返回頂部
主站蜘蛛池模板: 日日拍夜夜操 | 国产精品v一区二区三区 | 欧美日韩国产精品va | 久久精品国产99久久72 | 国产aav | 91精品国产福利在线观看性色 | 日本一级~片免费永久 | 青青青免费视频精品99 | 成人亚洲 | 四虎影视永久在线 | 九九热香蕉视频 | 91福利视频在线 | 久久香蕉国产线看观看精品yw | 成人欧美视频在线观看 | 久久国产欧美另类久久久 | 欧美区日韩区 | 新久草| 国产亚洲美女精品久久久久狼 | 久久精品一区二区三区不卡 | 日一区二区 | 国产精品成人四虎免费视频 | 国产色网 | 99精品国产兔费观看66 | 国产亚洲天堂 | 一级毛片日本特黄97人人 | 男任天堂2021 | 一区二区三区中文 | 四虎免费紧急入口观看 | 国产系列在线播放 | 成人网欧美亚洲影视图片 | 青青草国产免费一区二区 | 色人阁五月 | 日本视频h | 最新国产精品久久精品 | 久久伊| 亚洲免费视频一区二区三区 | 日日草视频 | 免费福利入口在线观看 | 精品国产一区二区二三区在线观看 | 爱综合网 | 一级一级 a爱片免费视频 |