太原理工大學軟件設計與體系結構 --javaEE

這個是簡答題的內容

選擇題的一些老師會給你們題庫,一些注意的點我會做出文檔在這個網址

項目目錄預覽 - 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類不能被繼承。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65788.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65788.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65788.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習知識點:LSTM

文章目錄 1.應用現狀2.發展歷史3.基本結構4.LSTM和RNN的差異 1.應用現狀 長短期記憶神經網絡&#xff08;LSTM&#xff09;是一種特殊的循環神經網絡(RNN)。原始的RNN在訓練中&#xff0c;隨著訓練時間的加長以及網絡層數的增多&#xff0c;很容易出現梯度爆炸或者梯度消失的問…

mmdet

一&#xff0c;configs/_base_ 1.default_runtime.py 2.schedule_1x.py 二&#xff0c;mmdet 1.datasets/coco.py/CocoDataset METAINFO {classes:(milk, red, spring, fanta, sprite, pepsi, king, ice, cola, scream ),# palette is a list of color tuples, which is us…

ElasticSearch 認識和安裝ES

文章目錄 一、為什么學ElasticSearch?1.ElasticSearch 簡介2.ElasticSearch 與傳統數據庫的對比3.ElasticSearch 應用場景4.ElasticSearch 技術特點5.ElasticSearch 市場表現6.ElasticSearch 的發展 二、認識和安裝ES1.認識 Elasticsearch&#xff08;簡稱 ES&#xff09;2.El…

node.js中實現token的生成與驗證

Token&#xff08;令牌&#xff09;是一種用于在客戶端和服務器之間安全傳輸信息的加密字符串。在Web開發中&#xff0c;Token常用于身份驗證和授權&#xff0c;確保用戶能夠安全地訪問受保護的資源。 作用與意義 身份驗證&#xff1a;Token可以用來驗證用戶的身份&#xff0…

第34天:安全開發-JavaEE應用反射機制攻擊鏈類對象成員變量方法構造方法

時間軸&#xff1a; Java反射相關類圖解&#xff1a; 反射&#xff1a; 1、什么是 Java 反射 參考&#xff1a; https://xz.aliyun.com/t/9117 Java 提供了一套反射 API &#xff0c;該 API 由 Class 類與 java.lang.reflect 類庫組成。 該類庫包含了 Field 、 Me…

Django后端相應類設計

通用的ApiResponse類&#xff1a;用于生成統一的 API 響應格式。每個響應都包含以下字段&#xff08;每個接口最終的返回數據格式&#xff09;&#xff1a; status_code&#xff1a;HTTP 狀態碼&#xff08;如 200、400、500 等&#xff09;message&#xff1a;響應的描述信息…

汽車基礎軟件AutoSAR自學攻略(三)-AutoSAR CP分層架構(2)

汽車基礎軟件AutoSAR自學攻略(三)-AutoSAR CP分層架構(2) 下面我們繼續來介紹AutoSAR CP分層架構&#xff0c;下面的文字和圖來自AutoSAR官網目前最新的標準R24-11的分層架構手冊。該手冊詳細講解了AutoSAR分層架構的設計&#xff0c;下面讓我們來一起學習一下。 Introductio…

css面試常考布局(圣杯布局、雙飛翼布局、三欄布局、兩欄布局、三角形)

兩欄布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

模糊查詢在sqlserver、dm8、mysql的編寫示例

模糊查詢要求&#xff1a;字段值以 25D 開頭&#xff0c;并以 4 位數字結尾 sqlserver&#xff1a; select * from table_name where column_name like 25D[0-9][0-9][0-9][0-9] 說明&#xff1a; 25D&#xff1a;表示字符串以 25D 開頭。 [0-9][0-9][0-9][0-9]&#xf…

SCTNet模型詳解及代碼復現

模型背景 隨著深度學習技術的發展,語義分割領域取得了顯著進展。然而,在實際應用中,特別是在實時場景下,現有模型往往面臨計算復雜度高、難以平衡精度和速度等問題。為應對這些挑戰,研究人員提出了SCTNet模型,旨在解決實時語義分割問題,同時兼顧精度和效率。該模型融合…

Python的循環

Python的循環 Python的循環有兩種&#xff0c;分別是for…in循環和while循環。 for…in 循環 假設我們要循環輸出一個列表里的元素&#xff1a; names [張三,李四,王五] for name in names:print(name)執行這段代碼后&#xff0c;會依次打印names的每一個元素&#xff1a;…

【0387】Postgres內核 streaming replication(流復制)工作原理

1. Postgres 流復制 本文是關于設置 PostgreSQL 版本流復制的簡明指南,力求盡可能不受平臺限制。故而,其假定您擁有運用操作系統工具編輯文件及安裝/配置軟件包的扎實知識。并且,還假定您熟悉 PostgreSQL 的配置情況。 PostgreSQL 內置的流復制為您的數據庫構建了一個服務…

網絡攻擊行為可視化分析系統【數據分析 + 可視化】

一、系統背景 隨著信息技術的快速發展&#xff0c;網絡已成為現代社會不可或缺的一部分。然而&#xff0c;與此同時&#xff0c;網絡攻擊手段也日益多樣化和復雜化&#xff0c;給企業和個人的信息安全帶來了極大的威脅。傳統的網絡攻擊分析方法往往依賴于人工分析和處理大量的…

利用obs studio制作(人像+屏幕)錄制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能強大的開源軟件&#xff0c;它使用戶能夠直接從電腦錄制視頻和直播內容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平臺。它在需要直播或錄制屏幕活動的游戲玩家、YouTube 用戶和專業人士…

蠕蟲病毒會給服務器造成哪些危害?

蠕蟲病毒是一種獨立的惡意計算機程序&#xff0c;可以進行自我復制來傳播到其他的計算機系統當中&#xff0c;蠕蟲病毒和傳統病毒之間是有著區別的&#xff0c;蠕蟲病毒不需要宿主程序就能夠自行傳播&#xff0c;主要是利用各種操作系統漏洞進行攻擊的。 接下來小編就介紹一下蠕…

C# GDI+的DrawString無法繪制Tab鍵的現象

【啰嗦2句】 現在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以這個問題估計也冷門。沒關系&#xff0c;分享給特定需要的人也不錯。 【問題現象】 工作中開發了一個報告編輯器&#xff0c;實現圖文排版等功能&#xff0c;用著沒什么問題&#xff0c;直到有一天…

互斥信號量的等待與通知

目錄 等待互斥信號量 信號量未被占用 信號量被自己占用 信號量被高優先級任務占用 信號量被低優先級任務占用 釋放互斥信號量 未發生優先級繼承 發生優先級繼承 等待互斥信號量 信號量未被占用 標記為已經被占用鎖定計數1 信號量被自己占用 鎖定計數1 信號量被高優先級任務占用…

夯實前端基礎之HTML篇

知識點概覽 HTML部分 1. DOM和BOM有什么區別&#xff1f; DOM&#xff08;Document Object Model&#xff09; 當網頁被加載時&#xff0c;瀏覽器會創建頁面的對象文檔模型&#xff0c;HTML DOM 模型被結構化為對象樹 用途&#xff1a; 主要用于網頁內容的動態修改和交互&…

Qt資源文件以及文件加密

1、Qt資源文件 在Qt中&#xff0c;資源文件&#xff08;.qrc&#xff09;是一種方便的方式來管理應用程序中的多媒體文件&#xff0c;如圖像、圖標和其他資源。這些文件使用XML格式定義&#xff0c;并在編譯時嵌入到應用程序的二進制文件中。 創建資源文件的步驟如下&#xff…

深入詳解人工智能自然語言處理(NLP)之文本處理:分詞、詞性標注、命名實體識別

【自然語言處理】——深入詳解人工智能自然語言處理&#xff08;NLP&#xff09;之文本處理&#xff1a;分詞、詞性標注、命名實體識別 自然語言處理&#xff08;Natural Language Processing&#xff0c;簡稱NLP&#xff09;是人工智能的一個重要分支&#xff0c;涉及如何使計…