前言:(開源框架學(xué)習(xí)思維導(dǎo)圖)
Spring5概述(面試題)
Spring5 是一個重要的版本彪笼,距離SpringFramework4差不多四年煌贴。在此期間葵硕,大多數(shù)增強都是在 SpringBoot 項目中完成的褥傍。
Spring 是一個開源的輕量級 Java SE(Java 標準版本)/Java EE(Java 企業(yè)版本)開發(fā)應(yīng)用框架恋昼, 其目的是用于簡化企業(yè)級應(yīng)用程序開發(fā)。應(yīng)用程序是由一組相互協(xié)作的對象組成玖姑。而在傳統(tǒng)應(yīng)用程序開發(fā)中愕秫,一個完整的應(yīng)用是由一組相互協(xié)作的對象組成。所以開發(fā)一個應(yīng)用除了要開發(fā)業(yè)務(wù)邏輯之外焰络,最多的是關(guān)注如何使這些對象協(xié)作來完成所需功能戴甩,而且要低耦合、高內(nèi)聚闪彼。業(yè)務(wù)邏輯開發(fā)是不可避免的甜孤, 那如果有個框架出來幫我們來創(chuàng)建對象及管理這些對象之間的依賴關(guān)系。
一切從 Bean 開始
1畏腕、什么是Spring beans?
2缴川、一個 Spring Bean 定義 包含什么?
3描馅、如何給Spring 容器提供配置元數(shù)據(jù)?
4把夸、你怎樣定義類的作用域?
5、解釋Spring支持的幾種bean的作用域铭污。
6恋日、Spring框架中的單例bean是線程安全的嗎?
7、解釋Spring框架中bean的生命周期嘹狞。
8岂膳、哪些是重要的bean生命周期方法? 你能重載它們嗎磅网?
9谈截、什么是Spring的內(nèi)部bean?
10涧偷、在 Spring中如何注入一個java集合簸喂?
Spring IoC(面試題)
IoC——控制反轉(zhuǎn)(Inversion of Control,英文縮寫為IoC)是框架的重要特征嫂丙,如果程序員清楚框架和工具箱的差別娘赴,可以無視本術(shù)語。
可以使用C語言設(shè)計框架跟啤,因此诽表,IoC并非面向?qū)ο缶幊痰膶S眯g(shù)語唉锌。
Spring的DI/依賴注入(Dependency Injection,簡稱DI)僅僅是一個工具箱竿奏,因此與IoC沒有關(guān)系袄简。
Spring最基礎(chǔ)的部分就是IOC,對IOC的理解程度從某個方面代表著你對Spring 的理解程度泛啸,看了網(wǎng)上的一些面試題绿语,針對Spring IOC相關(guān)的重點是下面幾個:
1、Spring中Bean 的生命周期是怎么樣的候址?
2吕粹、Spring IOC是如何實現(xiàn)的,如何加載Bean岗仑,如何創(chuàng)建單例Bean匹耕?
3、BeanFactory和ApplicationContext之間的關(guān)系荠雕?
4稳其、BeanFactory和FactoryBean之間的關(guān)系?
5炸卑、Spring Bean有哪些擴展點既鞠?
Spring AOP(面試題)
AOP稱為面向切面編程,在程序開發(fā)中主要用來解決一些系統(tǒng)層面上的問題盖文,比如日志嘱蛋,事務(wù),權(quán)限等待五续,Struts2的攔截器設(shè)計就是基于AOP的思想浑槽,是個比較經(jīng)典的例子。
AOP的基本概念
(1)Aspect(切面):通常是一個類返帕,里面可以定義切入點和通知
(2)JointPoint(連接點):程序執(zhí)行過程中明確的點,一般是方法的調(diào)用
(3)Advice(通知):AOP在特定的切入點上執(zhí)行的增強處理篙挽,有before,after,afterReturning,afterThrowing,around
(4)Pointcut(切入點):就是帶有通知的連接點荆萤,在程序中主要體現(xiàn)為書寫切入點表達式
(5)AOP代理:AOP框架創(chuàng)建的對象,代理就是目標對象的加強铣卡。Spring中的AOP代理可以使JDK動態(tài)代理链韭,也可以是CGLIB代理,前者基于接口煮落,后者基于子類
1敞峭、說出Spring的通知類型有哪些?
2蝉仇、談?wù)勀繕藢ο髮崿F(xiàn)接口與目標對象不實現(xiàn)接口有什么區(qū)別旋讹?
3殖蚕、請描述JDK動態(tài)代理和CGLI代理的區(qū)別?
4沉迹、簡述ProxyFactoryBean的作用是什么睦疫?
5、敘述Spring中的自動代理的原理鞭呕?
6蛤育、寫出代理的兩種方式分別是什么?
7葫松、請簡述:什么是AOP瓦糕?
8.、簡述AOP核心腋么?
9咕娄、請敘述AOP事務(wù)的含義?
10党晋、寫出創(chuàng)建代理對象需指定的三要素是什么谭胚?
Mybatis(面試題)
MyBATIS 目前提供了三種語言實現(xiàn)的版本,包括:Java未玻、.NET以及Ruby灾而。它提供的持久層架包括SQL Maps和Data Access Objects(DAO)。
mybatis提供一種“半自動化”的ORM實現(xiàn)扳剿。 這里的“半自動化”旁趟,是相對Hibernate等提供了全面的數(shù)據(jù)庫封裝機制的“全自動化”O(jiān)RM實現(xiàn)而言,“全自動”O(jiān)RM實現(xiàn)了POJO和數(shù)據(jù)庫表之間的映射庇绽,以及 SQL 的自動生成和執(zhí)行锡搜。而mybatis的著力點,則在于POJO與SQL之間的映射關(guān)系瞧掺。
1耕餐、JDBC編程有哪些不足之處,MyBatis是如何解決這些問題的辟狈?
2肠缔、MyBatis編程步驟是什么樣的?
3哼转、MyBatis與Hibernate有哪些不同明未?
4、使用MyBatis的mapper接口調(diào)用時有哪些要求壹蔓?
5趟妥、SqlMapConfig.xml中配置有哪些內(nèi)容?
6佣蓉、簡單的說一下MyBatis的一級緩存和二級緩存披摄?
7亲雪、Mapper編寫有哪幾種方式?
8行疏、Mybatis是如何進行分頁的匆光?分頁插件的原理是什么?
9酿联、簡述Mybatis的插件運行原理终息,以及如何編寫一個插件。
10贞让、Mybatis執(zhí)行批量插入周崭,能返回數(shù)據(jù)庫主鍵列表嗎?
Spring MVC(面試題)
在Spring MVC應(yīng)用程序中喳张,模型通常由POJO對象組成续镇,它在業(yè)務(wù)層中被處理,在持久層中被持久化销部。視圖通常是用JSP標準標簽庫(JSTL)編寫的JSP模板摸航。控制器部分是由dispatcher servlet負責(zé)舅桩,在本教程中我們將會了解更多它的相關(guān)細節(jié)酱虎。
一些開發(fā)人員認為業(yè)務(wù)層和DAO層類是MVC模型組件的一部分。我對此持有不同的意見擂涛。我不認為業(yè)務(wù)層及DAO層類為MVC框架的一部分读串。通常一個web應(yīng)用是3層架構(gòu),即數(shù)據(jù)-業(yè)務(wù)-表示撒妈。MVC實際上是表示層的一部分恢暖。
1、 講下SpringMvc的執(zhí)行流程
2狰右、SpringMvc中函數(shù)的返回值是什么.
3杰捂、SpringMvc怎么處理返回值的
4、SpringMVC怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的
5棋蚌、SpringMvc用什么對象從后臺向前臺傳遞數(shù)據(jù)的
6琼娘、SpringMvc中有個類把視圖和數(shù)據(jù)都合并的一起的,叫什么
7、怎么樣把ModelMap里面的數(shù)據(jù)放入Session里面
9附鸽、SpringMvc怎么和AJAX相互調(diào)用的
10、當一個方法向AJAX返回特殊對象,譬如Object,List等,需要做什么處理
面試資料:
需要面試題匯總(可私信我免費領(lǐng)取答案)私信【面試資料】即可免費領(lǐng)取
附加java開發(fā)的資料(面試資源與經(jīng)驗總結(jié)瞒瘸,Dubbo坷备、Redis、設(shè)計模式情臭、Netty省撑、zookeeper赌蔑、Spring cloud、分布式竟秫、高并發(fā)等架構(gòu)技術(shù)視頻教程資料,架構(gòu)思維導(dǎo)圖娃惯,以及面試資料,了解最新的學(xué)習(xí)動態(tài)肥败;了解最新的阿里趾浅、京東招聘資訊)