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

面試題首頁(yè) > Spring面試題

Spring設(shè)計(jì)模式面試題

001Spring中單例模式體現(xiàn)?

單例模式應(yīng)該是大家印象最深的一種設(shè)計(jì)模式了。在Spring中最明顯的使用場(chǎng)景是在配置文件中配置注冊(cè)bean對(duì)象的時(shí)候設(shè)置scope的值為singleton 。

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

002Spring中原型模式體現(xiàn)?

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

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

003Spring中模板模式體現(xiàn)?

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

004Spring中觀察者模式體現(xiàn)?

觀察者模式定義的是對(duì)象間的一種一對(duì)多的依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴(lài)于它的對(duì)象都得到通知并被自動(dòng)更新。使用比較場(chǎng)景是在監(jiān)聽(tīng)器中而spring中Observer模式常用的地方也是listener的實(shí)現(xiàn)。如ApplicationListener.

005Spring中工廠模式體現(xiàn)?

簡(jiǎn)單工廠模式:就是通過(guò)工廠根據(jù)傳遞進(jìn)來(lái)的參數(shù)決定產(chǎn)生哪個(gè)對(duì)象。Spring中我們通過(guò)getBean方法獲取對(duì)象的時(shí)候根據(jù)id或者name獲取就是簡(jiǎn)單工廠模式了。

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

工廠方法模式:在Spring中我們一般是將Bean的實(shí)例化直接交給容器去管理的,實(shí)現(xiàn)了使用和創(chuàng)建的分離,這時(shí)容器直接管理對(duì)象,還有種情況是,bean的創(chuàng)建過(guò)程我們交給一個(gè)工廠去實(shí)現(xiàn),而Spring容器管理這個(gè)工廠。這個(gè)就是我們講的工廠模式,在Spring中有兩種實(shí)現(xiàn)一種是靜態(tài)工廠方法模式,一種是動(dòng)態(tài)工廠方法模式。以靜態(tài)工廠來(lái)演示

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

006Spring中適配器模式體現(xiàn)?

將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)希望的另外一個(gè)接口。使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以在一起工作。這就是適配器模式。在Spring中在AOP實(shí)現(xiàn)中的Advice和interceptor之間的轉(zhuǎn)換就是通過(guò)適配器模式實(shí)現(xiàn)的。

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();
        // 通知類(lèi)型匹配對(duì)應(yīng)的攔截器
        return new MethodBeforeAdviceInterceptor(advice);
    }
}

007Spring中裝飾者模式體現(xiàn)?

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

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

008Spring中其它設(shè)計(jì)模式體現(xiàn)?

代理模式:Spring的AOP功能用到了JDK的動(dòng)態(tài)代理和CGLIB字節(jié)碼生成技術(shù)
策略模式:例如Resource的實(shí)現(xiàn)類(lèi),針對(duì)不同的資源文件,實(shí)現(xiàn)了不同方式的資源獲取策略。
責(zé)任鏈模式:AOP中的攔截器鏈
委托者模式:DelegatingFilterProxy,整合Shiro,SpringSecurity的時(shí)候都有用到。
橋接模式:可以根據(jù)客戶(hù)的需求能夠動(dòng)態(tài)切換不同的數(shù)據(jù)源。比如我們的項(xiàng)目需要連接多個(gè)數(shù)據(jù)庫(kù),客戶(hù)在每次訪問(wèn)中根據(jù)需要會(huì)去訪問(wèn)不同的數(shù)據(jù)庫(kù)。

目錄

返回頂部
主站蜘蛛池模板: 国产精品综合一区二区三区 | 国产精品主播在线 | 免费视频网站一级人爱视频 | 日本乱人伦片中文字幕三区 | 国产精品久久久久久久久久久不卡 | 91亚洲区国产区精品区 | 四虎4hu永久免费 | 欧美jizzhd精品欧美4k | 亚洲日本一区二区三区高清在线 | 免费精品美女久久久久久久久 | 国产亚洲第一精品社区麻豆 | 国产成人乱码一区二区三区在线 | 国产一久久香蕉国产线看观看 | 毛片毛片毛片毛片 | 天天做天天爱夜夜爽毛片毛片 | 九九在线精品视频播放 | 亚洲国产天堂在线网址 | 久久99热66这里只有精品一 | 欧美第一页在线观看 | 九九九国产在线 | 天天舔天天干 | 亚洲欧美一区二区三区二厂 | 婷婷激情五月 | 一本久道久久综合中文字幕 | 酒色网站 | 久久久久久国产精品三级 | 国产在线日韩 | 日韩爱爱小视频 | 国产女人伦码一区二区三区不卡 | 久草在线中文 | 成年女人免费视频播放77777 | 久久福利资源站免费观看i 久久高清 | 久久黄色网址 | 在线观看欧美亚洲日本专区 | 日本一级特黄毛片免费视频 | 四虎国产永久在线观看 | 四虎精品影院 | 麻豆国内精品欧美在线 | 一级高清毛片 | 日韩经典欧美一区二区三区 | 久久国产精品男女热播 |