springmvc怎么解析post_秋招跳槽,面试是拦路虎?【spring、springMVC】- 常见面试题汇总...
作為一名高級Java工程師,不僅要具備扎實的理論功底,還要有較多的項目經驗,要對市面上的主流技術有一個大致的了解。框架能夠提升程序開發效率,也是高薪Java工程師面試必問的技術,今天千我就給大家分享一下常見的Spring框架面試題。
spring
spring框架有哪些主要模塊?
spring框架至今已經集成了20多個模塊,這些模塊主要被分為以下:核心容器,數據訪問/集成,WEB、AOP(面向切面編程)、工具、消息、和測試模塊。
Spring 框架中用到了哪些設計模式?請舉例說明
Spring 框架中使用到了大量的設計模式,下面列舉了比較有代表性的:
- 代理模式 — 在 AOP 和 remoting 中被用的比較多 。
- 單例模式 — 在 spring 配置文件中定義的 bean 默認為單例模式 。
- 模板方法 — 用來解決代碼重復的問題 。 比如 RestTemplate, JmsTemplate, JpaTemplate。
- 前端控制器 —Spring 提供了 DispatcherServlet 來對請求進行分發 。
- 視圖幫助 (View Helper )—Spring 提供了一系列的 JSP 標簽,高效宏來輔助將分散的代碼整合在視圖里 。
- 依賴注入 — 貫穿于 BeanFactory / ApplicationContext 接口的核心理念 。
- 工廠模式 —BeanFactory 用來創建對象的實例 。
spring框架帶來哪些好處?
- DI(依賴注入)IOC(控制反轉)將對象統一管理,依賴關系一目了然,降低組件之間的耦合,讓我們更注重于業務邏輯。
- AOP的很好支持,方便面向切面編程。
- 對主流框架有很好的集成,springboot,jpa,mybatis,springmvc。
- 采用分層架構,使項目層次分明,可以分層使用。
開發中主要使用 Spring 的什么技術 ?
①. IOC 容器管理各層的組件②. 使用 AOP 配置聲明式事務③. 整合其他框
什么是控制反轉IOC,什么是依賴注入DI?
- 控制反轉是本來new 對象是,對象本身自己new 出來的,但是spring將new 對象的功能交給spring 容器,這就實現了控制反轉。工廠模式。
- 依賴注入是控制反轉的基礎,而new 出來綁定依賴關系的過程就叫依賴注入。java中實現依賴注入有三種方式:
請解釋Spring Bean的生命周期?
applicationContext與beanFactory的區別?
- BeanFactory:
是Spring里面最低層的接口,提供了最簡單的容器的功能,只提供了實例化對象和拿對象的功能; - ApplicationContext:
應用上下文,繼承BeanFactory接口,它是Spring的一各更高級的容器,提供了更多的有用的功能;
Spring有幾種配置方式?
- 基于XML的配置
- 基于注解的配置
- 基于Java的配置
spring 中的核心類有那些,各有什么作用?
- BeanFactory:產生一個新的實例,可以實現單例模式。
- BeanWrapper:提供統一的 get 及 set 方法。
- ApplicationContext:提供框架的實現,包括 BeanFactory 的所有功能。
怎樣用注解的方式配置Spring?
- 開啟組件掃描特定的組件
- 特定的組件CommponentResposttoryServiceController
- 開啟包掃表
spring如何配置bean?
- 通過反射全類名
- 通過工廠方法(靜態工廠方法/實例工廠方法)
- 通過FactoryBean
Spring 如何整合 Struts2 ?
整合 Struts2, 即由 IOC 容器管理 Struts2 的 Action:
- 安裝 Spring 插件: 把 struts2-spring-plugin-2.2.1.jar 復制到當前 WEB 應用的 WEB-INF/lib 目錄下
- 在 Spring 的配置文件中配置 Struts2 的 Action 實例
- 在 Struts 配置文件中配置 action, 但其 class 屬性不再指向該
- Action 的實現類, 而是指向 Spring 容器中 Action 實例的 ID
Spring 如何整合 Hibernate
整合 Hibernate, 即由 IOC 容器生成 SessionFactory 對象, 并使用
Spring 的聲明式事務
- 利用 LocalSessionFactoryBean 工廠 Bean, 聲明一個使用 XML 映射文件的 SessionFactory 實例.
- 利用 HibernateTransactionManager 配置 Hibernate 的事務管理器
springMVC
什么是springmvc?談談你對springmvc的理解?
springmvc是一個基于mvc架構的用來簡化web應用程序的開發框架,他是spring的一個模塊,無需中間整合層來整合,是一個表現層框架,在web模型中,mvc是一種很流行的框架,通過把Model View Controller 分離,把較為復雜的web應用分成邏輯清晰的及部分,簡化開發,減少出錯,方便組內開發人員配合。
為什么要用springMVC?
基本上,框架的作用就是用來簡化編程的,相對于servlet來說,獲取表單參數,響應請求等變得更簡單了。
Spring MVC的主要組鍵?
作用:接收請求、響應結果 相當于轉發器,有了DispatcherServlet 就減少了其它組件之間的耦合度。
作用:根據請求的URL來查找Handler
注意:在編寫Handler的時候要按照HandlerAdapter要求的規則去編寫,這樣適配器HandlerAdapter才可以正確的去執行Handler。
作用:進行視圖的解析 根據視圖邏輯名解析成真正的視圖(view)
View是一個接口, 它的實現類支持不同的視圖類型(jsp,freemarker,pdf等等)
springmvc的主要流程。
1.開啟注解約束
2.開啟包掃描
3.開啟springmvc的注冊驅動,識別controller中的相關注解)
如何解決post請求亂碼問題?
在web.xml中添加spring自帶的 CharacterEncodingFilter字符編碼過濾器,在init-param標簽中設置為utf-8。
Spring MVC的異常處理 ?
可以將異常拋給Spring框架,由Spring框架來處理;我們只需要配置簡單的異常處理器,在異常處理器中添視圖頁面即可。
SpringMvc的控制器是不是單例模式,如果是,有什么問題,怎么解決?
是單例模式,所以在多線程訪問的時候有線程安全問題,不要用同步,會影響性能的,解決方案是在控制器里面不能寫字段
@RequestMapping注解用在類上面有什么作用?
是一個用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑
怎么樣把某個請求映射到特定的方法上面?
直接在方法上面加上注解@RequestMapping,并且在這個注解里面寫上要攔截的路徑。
如果在攔截請求中,我想攔截get方式提交的方法,怎么配置?
可以在@RequestMapping注解里面加上method=RequestMethod.GET。
怎么樣在方法里面得到Request,或者Session?
直接在形參里面聲明這個參數就可以,但必須名字和傳過來的參數一樣。
SpringMvc中有個類把視圖和數據都合并的一起的,叫什么?
ModelAndView。
SpringMvc里面攔截器是怎么寫的
有兩種寫法,一種是實現接口,另外一種是繼承適配器類,然后在SpringMvc的配置文件中配置攔截器即可:
<!-- 只針對部分請求攔截 --> <mvc:interceptor><mvc:mapping path="/modelMap.do" /><bean class="com.et.action.MyHandlerInterceptorAdapter" /> </mvc:interceptor>SpringMvc用什么對象從后臺向前臺傳遞數據的
通過ModelMap對象,可以在這個對象里面用put方法,把對象加到里面,前臺就可以通過el表達式拿到
------完結------感謝你的閱讀,點贊、關注一下再走吧!!!
總結
以上是生活随笔為你收集整理的springmvc怎么解析post_秋招跳槽,面试是拦路虎?【spring、springMVC】- 常见面试题汇总...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: scala 定义空list_Scala的
- 下一篇: python2和3的编码区别_Pytho