目前常用的Java框架有很多,其中SSH(SpringMVC、Spring、Hibernate)是很多企業(yè)在招聘過程中經(jīng)常提及的,接下來千鋒就給大家分享一下有關(guān)SSH框架的面試題。
1、什么是Spring?
Spring是一個容器,可以接管各個層次的Bean(action/domain/pojo/javabean),并且可以配置bean與bean之間的關(guān)系。在Java代碼里使用bean只需要用ApplicationContext的getBean(配置文件里bean的id)方法就可以。
2、IOC是什么?
IOC(inverseofcontrol)控制反轉(zhuǎn):所謂控制反轉(zhuǎn)就是把對象(bean)對象和維護對象(bean)之間的關(guān)系的權(quán)利轉(zhuǎn)移到Sqring容器中去了(ApplicationContext.xml)而程序本身不在維護了。
3、DI是什么?
DI(dependencyinjection)依賴注入:實際上DI和IOC是同一個概念,因為在ApplicationContext.xml配置文件中bean和bean之間通過ref來維護的時候是相互依賴的,所以又叫做依賴注入,也就是控制反轉(zhuǎn)。
4、SpringMVC的工作流程是什么樣的?
1)用戶發(fā)送請求至前端控制器DispatcherServlet;
2)DispatcherServlet收到請求調(diào)用HandlerMapping處理器映射器;
3)處理器映射器根據(jù)請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet;
4)DispatcherServlet通過HandlerAdapter處理器適配器調(diào)用處理器;
5)執(zhí)行處理器(Controller,也叫后端控制器);
6)Controller執(zhí)行完成返回ModelAndView;
7)HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet;
8)DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器
9)ViewReslover解析后返回具體View;
10)DispatcherServlet對View進行渲染視圖(即將模型數(shù)據(jù)填充至視圖中);
11)DispatcherServlet響應(yīng)用戶。
5、簡述一下MVC思想
MVC是一種設(shè)計思想,M代表model,模型。V代表view,視圖,C代表controller控制層。M主要是業(yè)務(wù)層以及數(shù)據(jù)實體類。V負責(zé)與用戶交互,前臺JSP等。C負責(zé)調(diào)度分配作用。從瀏覽器發(fā)出請求到收到響應(yīng)顯現(xiàn)在頁面的順序。
6、Spring中自動裝配的方式有哪些?
1)No:即不啟用自動裝配。
2)byName:通過屬性的名字的方式查找JavaBean依賴的對象并為其注入。比如說類Computer有個屬性printer,指定其autowire屬性為byName后,SpringIoC容器會在配置文件中查找id/name屬性為printer的bean,然后使用Seter方法為其注入。
3)byType:通過屬性的類型查找JavaBean依賴的對象并為其注入。比如類Computer有個屬性printer,類型為Printer,那么,指定其autowire屬性為byType后,SpringIoC容器會查找Class屬性為Printer的bean,使用Seter方法為其注入。
4)constructor:通byType一樣,也是通過類型查找依賴對象。與byType的區(qū)別在于它不是使用Seter方法注入,而是使用構(gòu)造子注入。
5)autodetect:在byType和constructor之間自動的選擇注入方式。
7、Hibernate優(yōu)點:
1)對象/關(guān)系數(shù)據(jù)庫映射(ORM);
2)透明持久化(persistent);
3)事務(wù)Transaction(org.hibernate.Transaction);
4)它沒有侵入性,即所謂的輕量級框架;
5)移植性會很好;
6)緩存機制,提供一級緩存和二級緩存;
7)簡潔的HQL編程。
8、Hibernate中的update()和saveOrUpdate()的區(qū)別
update是修改的方法,saveOrUpdate是保存或者更新。
saveorupdate()如果傳入的對象在數(shù)據(jù)庫中有就做update操作,如果沒有就做save操作。
save()在數(shù)據(jù)庫中生成一條記錄,如果數(shù)據(jù)庫中有,會報錯說有重復(fù)的記錄。
update()就是更新數(shù)據(jù)庫中的記錄。
以上就是長沙達內(nèi)教育Java培訓(xùn)機構(gòu)小編介紹的“Java ssh框架面試題:就業(yè)面試技巧”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。