
課程咨詢: 400-996-5531 / 投訴建議: 400-111-8989
認(rèn)真做教育 專心促就業(yè)
1. Spring的Ioc和aop分別是用什么原理實現(xiàn)的?
主要應(yīng)用了java的反射技術(shù)
2.spring 的工作機(jī)制以及為什么要用?
1) spring mvc請所有的請求都提交給DispatcherServlet,它會委托應(yīng)用系統(tǒng)的其他模塊負(fù)責(zé)負(fù)責(zé)對請求進(jìn)行真正的處理工作。
2) DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.
3) DispatcherServlet請請求提交到目標(biāo)Controller
4) Controller進(jìn)行業(yè)務(wù)邏輯處理后,會返回一個ModelAndView
5) Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象
6)視圖對象負(fù)責(zé)渲染返回給客戶端
為什么用:
AOP 讓開發(fā)人員可以創(chuàng)建非行為性的關(guān)注點,稱為橫切關(guān)注點,并將它們插入到應(yīng)用程序代碼中。使用 AOP 后,公共服務(wù) (比 如日志、持久性、事務(wù)等)就可以分解成方面并應(yīng)用到域?qū)ο笊?,同時不會增加域?qū)ο蟮膶ο竽P偷膹?fù)雜性。
IOC 允許創(chuàng)建一個可以構(gòu)造對象的應(yīng)用環(huán)境,然后向這些對象傳遞它們的協(xié)作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務(wù)定位器、單元素(singleton)和直接構(gòu)造(straight construction),每一個對象都是用其協(xié)作對象構(gòu)造的。因此是由容器管理協(xié)作對象(collaborator)。
Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協(xié)作對象)。然后可以很容易地在需要時替換具有類似接口的協(xié)作對象。
3.如何實現(xiàn)國際化?
國際化:不用修改代碼,就適用于不同的語言國家
本地化:如果要適應(yīng)一個國家,要修改源代碼
實現(xiàn)過程:
在struts-config.xml中用如下標(biāo)簽說明資源文件名,注意其只是文件名,沒有語言_國家
在資源文件對應(yīng)的目錄struts中加入適應(yīng)不同語言、國家的properties文件
ApplicationResources_zh_CN.properties 中國
ApplicationResources_en_US.properties us
如果不是英語要轉(zhuǎn)碼
ative2ascii -encoding gb2312 源 ApplicationResources_zh_CN.properties
在jsp頁面中用
取出信息
4.Spring的BeanFactory與ApplicationContext區(qū)別?
ApplicationContext和BeanFacotry相比,提供了更多的擴(kuò)展功能,但其主要區(qū)別在于后者是延遲加載,如果Bean的某一個屬性 沒有注入,BeanFacotry加載后,直至第一次使用調(diào)用getBean方法才會拋出異常;而ApplicationContext則在初始化自身是 檢驗,這樣有利于檢查所依賴屬性是否注入;所以通常情況下我們選擇使用ApplicationContext。
5.說說你對用ssh框架進(jìn)行開發(fā)的理解?
框架:hibernate、spring、struts;
Hibernate 主要用于數(shù)據(jù)持久化;
Spring 的控制反轉(zhuǎn)能起到解耦合的作用;
Struts 主要用于流程控制。
6.請解釋什么是MVC?(設(shè)計模式)
A) M----Model 封裝業(yè)務(wù)數(shù)據(jù)及業(yè)務(wù)運算。
B) V-----View 封裝用戶界面。
C) C-----Controller 封裝業(yè)務(wù)處理流程。
7. MVC的各個部分都有哪些技術(shù)來實現(xiàn)?如何實現(xiàn)?
表示層 struts
持久層 hibernate
控制層 spring
也就是最常用的開發(fā)框架ssh
8.通過圖,說說你對MVC模型的理解。(企業(yè)有可能讓學(xué)生畫圖)?
1)首先是展示視圖給用戶,用戶在這個視圖上進(jìn)行操作,并填寫一些業(yè)務(wù)數(shù)據(jù)
2)然后用戶會點擊提交按鈕,來發(fā)出請求
3)視圖發(fā)出的用戶請求會到達(dá)控制器,在請求中包含了想要完成什么樣的業(yè)務(wù)功能以及相關(guān)的數(shù)據(jù)。
4)控制器會來處理用戶請求,會把請求中的數(shù)據(jù)進(jìn)行封裝,然后選擇并調(diào)用合適的模型,請求模型進(jìn)行狀態(tài)更新,然后選擇接下來要展示給用戶的視圖。
5)模型會去處理用戶請求的業(yè)務(wù)功能,同時進(jìn)行模型狀態(tài)的維護(hù)和更新
6)當(dāng)模型狀態(tài)發(fā)生改變的時候,模型會通知相應(yīng)的視圖,告訴視圖它的狀態(tài)發(fā)生了改變。
7)視圖借到模型的通知后,會向模型進(jìn)行狀態(tài)查詢,獲取需要展示的數(shù)據(jù),然后按照視圖本身的展示方式,把這些數(shù)據(jù)展示出來。
8)接下來就是等待用戶下一步操作,再次從頭輪回了。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!