黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

面試題首頁 > 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的時候都有用到。
橋接模式:可以根據客戶的需求能夠動態切換不同的數據源。比如我們的項目需要連接多個數據庫,客戶在每次訪問中根據需要會去訪問不同的數據庫。

目錄

返回頂部
主站蜘蛛池模板: 在线观看成年人视频 | 国产成人精品视频午夜 | 免费一级国产生活片 | 人人看人人干 | 日韩精品亚洲一级在线观看 | 国内精品小视频福利网址 | 五月婷在线 | 天天碰天天射 | 国产精品天干天干在线观看澳门 | 欧美日韩在线观看精品 | 久久尹人香蕉国产免费天天 | 天堂在线视频精品 | 国产成人午夜精品免费视频 | a级黄色免费 | 久久亚洲不卡一区二区 | 有人有片的观看免费视频 | 成人在线影视 | 永久免费在线播放 | 国产美女无遮挡免费视频网站 | 国产成人小视频在线观看 | 日韩精品高清自在线 | 久操视频在线观看 | 欧美日韩中文字幕在线手机版本 | 久久天天躁狠狠躁夜夜2020一 | 国产白丝丝高跟在线观看 | 天天射综合 | 视频精品一区二区三区 | mm在线精品视频 | 日韩在线视精品在亚洲 | 色噜噜噜 | 欧美一级xxxx俄罗斯一级 | 欧美综合色 | 成人欧美精品一区二区不卡 | 视频三区精品中文字幕 | 成人www视频网站免费观看 | 97国产视频 | 最近最新中文字幕免费高清1 | 成人一级 | 天天射天天射天天干 | 中文字幕亚洲一区二区va在线 | 看全色黄大色大片免费久久 |