這個是簡答題的內容
選擇題的一些老師會給你們題庫,一些注意的點我會做出文檔在這個網址
項目目錄預覽 - TYUT復習資料:復習資料 - GitCode
希望大家可以給我一些打賞
什么是Spring的IOC和DI
IOC 是一種設計思想,它將對象的創建和對象之間的依賴關系管理,從應用程序本身轉移到一個外部容器(如 Spring 容器)。在傳統編程中,對象通常由自己負責創建和管理依賴關系,而 IOC 反轉了這種控制,使得對象無需關心自身的創建和依賴的獲取,由容器來負責這些工作
DI 是 IOC 的一種實現方式。它是指在運行時,由容器將依賴對象傳遞給需要它的組件。Spring 容器負責創建對象,并將對象所依賴的其他對象通過一定的方式(如構造函數、setter 方法等)注入到對象中。
spring中實現依賴注入的兩種方式
Spring的實現方式通常有兩種:屬性setter方法注入和構造方法注入。
屬性setter方法注入:是指IoC容器使用setter方法來注入被依賴的實例。通過調用無參構造器或無參靜態工廠方法實例化Bean后,調用該Bean的setter方法,即可實現基于setter方法的依賴注入。
構造方法注入:是指IoC容器使用構造方法來注入被依賴的實例。基于構造方法的依賴注入通過調用帶參數的構造方法來實現,每個參數代表著一個依賴。
簡述控制器方法中的ModelAndView,String,void三種返回類型的作用
ModelAndView類型中可以添加Model數據,并指定視圖;
String類型的返回值可以跳轉視圖,但不能攜帶數據;
void類型主要在異步請求時使用,它只返回數據,而不會跳轉視圖。
AOP專業術語并解釋
@Aspect:配置切面,@Pointcut:配置切點,@Before:配置前置通知,@After:配置后置通知,@Around:配置環繞方式,@AfterReturning:配置返回通知,@AfterThrowing:配置異常通知.
Mybaits的工作執行流程
(1)讀取MyBatis配置文件mybatis-config.xml。
(2)由MyBatis配置文件加載映射文件Mapper.xml。
(3)通過MyBatis的環境等配置信息構建會話工廠SqlSessionFactory。
(4)由會話工廠創建SqlSession對象。
(5)MyBatis底層定義了一個Executor接口來操作數據庫,它會根據SqlSession傳遞的參數動態的生成需要執行的SQL語句。
(6)在Executor接口的執行方法中,包含一個MappedStatement類型的參數,該參數是對映射信息的封裝。
(7)在執行方法時,MappedStatement對象會對用戶執行SQL語句的輸入參數進行定義封裝。
(8)在數據庫中執行完SQL語句后,MappedStatement對象會對SQL執行輸出的結果進行定義封裝。
Mybaits關聯查詢映射的兩種處理方式
主要通過兩種方式:嵌套查詢和嵌套結果。
嵌套查詢是指通過執行另外一條SQL映射語句來返回預期的復雜類型;
嵌套結果是使用嵌套結果映射來處理重復的聯合結果的子集。
Mybaits中動態SQL的主要元素及說明
MyBatis動態SQL中的主要元素及說明如下:
< if> :判斷語句,用于單條件分支判斷;
< choose>(< when>、< otherwise>):相當于 Java中的 switch…case…default 語句,用于多條件分 支判斷;
< where>、< trim> 、< set>:輔助元素,用于處理一些 SQL 拼裝、特殊字符問題;
< foreach>:循環語句,常用于 in 語句等列舉條件中;
< bind>:從 OGNL 表達式中創建一個變量,并將其綁定到上下文,常用于模糊查詢的 sql 中。
Mybaits映射文件的主要元素及其作用
<mapper> 映射文件的根元素該元素只有一個namespace屬性,區分不同的mapper,全局唯一
<insert> 插入映射語句
<delete> 映射刪除語句
<update> 更新語句
<select> 查詢語句
<sql> 定義可重用的SQL語句
<resultmap> 數據庫結果集和對象的映射關系
SpringMvc框架的工作執行流程
1)用戶通過瀏覽器向服務器發送請求,請求會被Spring MVC的前端控制器DispatcherServlet攔截。
(2)DispatcherServlet攔截到請求后,會調用HandlerMapping(處理器映射器)。
(3)處理器映射器根據請求URL找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。
(3)DispatcherServlet會通過返回信息選擇合適的HandlerAdapter(處理器適配器)。
(4)HandlerAdapter會調用并執行Handler(處理器),這里的處理器指的就是程序中編寫的Controller類,也被稱之為后端控制器。
(5)Controller執行完成后,會返回一個ModelAndView對象,該對象中會包含視圖名或包含模型和視圖名。
(6)HandlerAdapter將ModelAndView對象返回給DispatcherServlet。
(7)前端控制器請求視圖解析器根據邏輯視圖名解析真正的視圖。
(8)ViewResolver解析后,會向DispatcherServlet中返回具體的View(視圖)。
(9)DispatcherServlet對View進行渲染(即將模型數據填充至視圖中)。
(10)前端控制器向用戶響應結果。
SpringMvc的特點
1.是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。
2.靈活性強,易于與其他框架集成。
3.提供了一個前端控制器DispatcherServlet,使開發人員無需額外開發控制器對象。
4.可自動綁定用戶輸入,并能正確的轉換數據類型。
5.內置了常見的校驗器,可以校驗用戶輸入。如果校驗不能通過,那么就會重定向到輸入表單。
6.支持國際化。可以根據用戶區域顯示多國語言。
請簡述< sql>元素的作用及使用。
作用: 定義可重用的SQL代碼片段。 使用: 先通過< sql>元素定義重用的代碼片段,然后在需要使用的地方使用< include>元素的refid屬性引用了自定義的代碼片段。
SpringMVC數據綁定
AOP
ORM
對象關系映射(Object Relational Mapping,簡稱ORM)模式是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。ORM框架是連接數據庫的橋梁,只要提供了持久化類與表的映射關系,ORM框架在運行時就能參照映射文件的信息,把對象持久化到數據庫中
AOP兩種代理方式的區別
-
JDK 動態代理:
-
基于 Java 反射機制實現。JDK 動態代理會在運行時創建一個實現了目標接口的代理類,通過反射來調用目標對象的方法,并在調用前后插入切面邏輯。
-
要求目標對象必須實現至少一個接口,因為代理類是通過實現這些接口來生成的。
-
-
CGLIB 代理:
-
基于繼承機制實現。CGLIB 通過字節碼生成技術,在運行時創建目標類的子類作為代理類,然后重寫目標類的方法,在方法調用前后織入切面邏輯。
-
即使目標對象沒有實現接口,CGLIB 也能為其創建代理。但如果目標類被聲明為
final
,則無法使用 CGLIB 代理,因為final
類不能被繼承。
-