java小游戲畢業論文,你不懂還不學?

1. Spring 特點

Spring 主要有如下特點:

  1. 輕量級:Spring 是非侵入式,其中的對象不依賴 Spring 的特定類;
  2. 控制反轉(IoC):通過 IoC,促進了低耦合,一個對象依賴的其他對象通過被動的方式傳遞進來,而不用該對象主動創建或查找;
  3. 面向切面(AOP):支持面向切面編程,將應用業務邏輯層和系統服務層分開;
  4. 容器:包含并管理應用對象的配置以及生命周期,此時 Spring 就相當于一個容器;
  5. 框架集合:能將簡單的組件進行配置,組合成為更為復雜的應用;在 Spring 中,應用對象被聲明式地組合在一個 XML 文件中;此外,Spring 也提供了事務管理、 持久化框架集成等基礎功能,將應用邏輯的開發留給開發者;

2. Spring 核心組件

Spring 是一個分層架構,主要由如下 7 大模塊所構成。Spring 模塊位于核心容器,定義了創建、配置和管理 Bean 的方式。

  1. Spring Core:提供 Spring 框架基本功能,主要組件是 BeanFactory,是工廠模式的實現,通過 IOC 機制將應用程序的配置和依賴性規范與實際的應用程序代碼分開。
  2. Spring Context:一個配置文件,給 Spring 框架提供上下文信息,上下文包括 JNDI、EJB、電子郵件、國際化、校驗和調度等企業服務。
  3. Spring AOP :通過配置管理特性,Spring AOP 直接將 AOP(面向切面)功能集成到 Spring 框架。從而我們能夠十分方便的使用 Spring 框架來管理任何支持 AOP 的對象。模塊為基于 Spring 的應用程序中的對象提供了事務管理服務。通過使用該組件,可以不依賴其他組件九江聲明性事務管理集成到應用程序中。
  4. Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可以用來管理異常處理和不同數據庫供應商拋出的錯誤信息。異常層次結構簡化了錯誤處理,而且極大降低了需要編寫的異常代碼數量。Spring DAO 面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
  5. Spring ORM:Spring 框架中插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map,這些都遵從 Spring 的通用事務和 DAO 異常層次結構;
  6. Spring Web:Web 上下文模塊建立在應用程序上下文模塊之上,為基于 Web 的應用程序提供了上下文,所以 Spring 框架支持與 Jakarta Structs 的集成。同時該模塊還簡化了處理多部分請求以及請求參數綁定到域對象的工作。
  7. Spring MVC:MVC 是一個全功能的構建 Web 應用的 MVC 實現,可以通過策略接口對 MVC 框架實現高度可配置。而且 MVC 還容納了 JSP、Velocity、Tiles 等視圖技術。

3. Spring 常用注解

4. IoC 原理

4.1 定義

Spring 通過一個配置文件來描述 Bean 之間的相互依賴關系,利用 Java 的反射功能來實例化 Bean 并建立 Bean 之間的依賴關系。Spring 的 IoC 容器在完成這些底層工作的基礎上,還提供 Bean 實例緩存、生命周期管理、Bean 實例代理、事件發布、資源裝載等高級服務;

總結而言:IOC 負責創建對象、管理對象(通過依賴注入)、整合對象、配置對象以及管理對象的生命周期

4.2 Spring 容器高層視圖

  1. Spring 啟動時先讀取 Bean 配置信息,并在 Spring 容器中生成一份對應的 Bean 配置注冊表;
  2. 根據上一步中生成的 Bean 配置注冊表來實例化 Bean,并裝配好 Bean 之間的依賴關系;
  3. 將實例化后的 Bean 裝載到 Spring 容器中的 Bean 緩存池中,供上層的應用程序使用;

4.3 Spring Bean 的作用域及生命周期

4.3.1 作用域

Spring 中,用來組成應用程序的主體以及由 Spring IoC 容器所管理的對象叫做 Bean。簡而言之,Bean 就是由 IoC 容器來進行初始化、裝配和管理的對象。

Bean 的作用域主要有如下幾種:

  1. Singleton(單例)

作用域為 Singleton該模式在多線程下不安全,表明 IoC 容器中只會存在一個共享 Bean 實例,而且所有對 Bean 的請求,主要 id 和該 Bean 定義相匹配,那么就會返回 Bean 的同一實例。Singleton 是單例模型,即在從創建容器的同時就會自動創建一個 Bean 的對象,無論是否使用,而且 每次獲取到的對象都是同一對象

  1. Prototype(原型):每次創建時使用

作用域為 Prototype,表明一個 Bean 定義對應多個實例,該作用域中的 Bean 會導致在 每次對該 Bean 請求時均創建一個新的 Bean 實例Prototype 是一個原型類型,在我們創建容器時并未實例化,而是當我們獲取 Bean 時才去創建一個對象,而且每次獲取到的對象都不一樣。

  1. Request:一次 request 一個實例

作用域為 Request表明在一次 HTTP 請求中,容器返回該 Bean 的同一個實例,即每個 HTTP 請求均有各自的 Bean 實例,依據某個 Bean 定義創建而成,只在基于 Web 的 Spring ApplicationContext 情形下有效。當一次 HTTP 請求處理結束時,該作用域中的 Bean 實例均被銷毀。

  1. Session

作用域為 Session ,表明 在一個 HTTP Session 中,容器返回該 Bean 的同一個實例,對不同的 Session 請求則創建新的實例,該 Bean 實例僅在當前 Session 內有效,只在基于 Web 的 Spring ApplicationContext 情形下有效。當一個 HTTP Session 被廢棄時,在該作用域內的 Bean 也將失效。

4.3.2 生命周期

  1. Spring 對 Bean 進行實例化;
  2. Spring 將值和 Bean 的引用注入到 Bean 對應屬性中;
  3. 若 Bean 實現了 BeanNameAware 接口,則 Spring 將 Bean 的 ID 傳遞給 setBeanName() 方法;
  4. 若 Bean 實現了 BeanFactoryAware 接口,Spring 將調用 setBeanFactory() 方法,將 Bean 所在應用引用傳入進來;
  5. 若 Bean 實現了 ApplicationContextAware 接口,Spring 將調用 setApplicationContext() 方法,將 Bean 所在應用的引用傳入進來;
  6. 若 Bean 實現了 BeanPostProcessor 接口,Spring 將調用 post-ProcessBeforeInitalization() 方法;
  7. 若 Bean 實現了 InitializingBean 接口,Spring 將調用他們的 after-PropertiesSet() 方法,類似地,如果 Bean 使用 init-method 聲明了初始化方法,則該方法也會被調用;
  8. 若 Bean 實現了 BeanPostProcessor 接口,Spring 將調用他們的 post-ProcessAfterInitialization() 方法;
  9. 此時,Bean 已經準備就緒,我們就可以被應用程序使用,他們將一直駐留在應用上下文中,直到該應用被銷毀;
  10. 若 Bean 實現了 DisposableBean 接口,Spring 將調用它的 destory() 接口方法;同樣,若 Bean 使用 destroy-method 聲明了銷毀方法,該方法也將被調用;

最后

2020年在匆匆忙忙慌慌亂亂中就這么度過了,我們迎來了新一年,互聯網的發展如此之快,技術日新月異,更新迭代成為了這個時代的代名詞,堅持下來的技術體系會越來越健壯,JVM作為如今是跳槽大廠必備的技能,如果你還沒掌握,更別提之后更新的新技術了。

更多JVM面試整理:

(img-45r23QMe-1624514493612)]

更多JVM面試整理:

[外鏈圖片轉存中…(img-Qg0vqmjZ-1624514493613)]

點擊這里免費下載“百萬級”「JVM筆記」

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

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

相關文章

mysql shell 回車換行_【shell mysql 導出數據到csv腳本,完美解決亂碼轉義符等問題】-費元星...

#!/bin/bash#author:feiyuanxing 【既然笨到家,就要努力到家】#date:2017-12-05#E-Mail:feiyuanxinggmail.com#TARGET:一鍵導出mysql數據到 csv#CopyRight:本腳本遵守 未來星開源協議(http://feiyuanxing.com/kaiyuanxieyi/kaiyua…

java小游戲源代碼資源,一招徹底弄懂!

BATJ大廠面經 阿里七面面經 螞蟻金服面經及答案 京東面經 百度美團順豐京東阿里面經 面試題精選 Java面試手冊 MySQL55題及答案 多線程面試題及答案 設計模式面試題及答案 消息中間件面試題及答案 并發編程面試題及答案 面試資料整理匯總 最后 總而言之,面試官問…

python學法用法 自動刷分器_Python selenium模擬手動操作實現無人值守刷積分功能...

def DaTi(): driver.get(url https://pc.xuexi.cn/points/exam-practice.html) elem_juje WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,//div[class"q-header"]))) juje elem_juje.get_attribute(innerText) # 在每日答題中&#…

java小程序小游戲代碼貪吃蛇,附高頻面試題合集

One:JVM實踐思維圖(完整版) Two: 走近Java 概述 Java技術體系Java發展史Java虛擬機家族:(Sun Classic/Exact VM、HotSpot VM、Mobile/Embedded VM、BEA JRockit/IBM J9 VM、BEA Liquid VM/Azul VM、Apache…

mysql創建存儲時覆蓋_總結到位的MySQL 的覆蓋索引與回表

兩大類索引使用的存儲引擎:MySQL5.7 InnoDB聚簇索引* 如果表設置了主鍵,則主鍵就是聚簇索引* 如果表沒有主鍵,則會默認第一個NOT NULL,且唯一(UNIQUE)的列作為聚簇索引* 以上都沒有,則會默認創建一個隱藏的row_id作為聚…

java小程序開發平臺,隔壁都饞哭了

01 阿里面試題之MySQL 之前的阿里面試題都有做總結,具體面試題內容整理成了文檔,本文是針對MySQL系列的,所以下面只展示了自己第一次面試阿里時被吊打問到的一些MySQL難題 請解釋關系型數據庫概念及主要特點?請說出關系型數據庫…

java小程序查看器,成功拿到offer

架構筑基 大家都知道,性能一直是讓程序員比較頭疼的問題。當系統架構變得復雜而龐大之后,性能方面就會下降,如果想成為一名優秀的架構師,性能優化就是你必須思考的問題。 所以性能優化專題從JVM底層原理到內存優化再到各個中間件…

java小程序設計一個國旗點擊國旗唱國歌,看這篇足矣了!

工作的前兩年 如果你不能拼爹,或者不想拼爹,最好的方法是拼實力。 合抱之木,生于毫末;九層之臺,起于壘土;千里之行,始于足下。 所以,你必須要從基層做起。當然,所謂的基…

java client_java中HttpClient的使用

HttpClient的使用步驟:1、使用Apache的HttpClient發送GET和POST請求的步驟如下:1. 使用幫助類HttpClients創建CloseableHttpClient對象. 2. 基于要發送的HTTP請求類型創建HttpGet或者HttpPost實例.3. 使用addHeader方法添加請求頭部,諸如User-Agent, Accept-Encodin…

java小項目實例,成功入職阿里

我聽到的一些發聲 你們賺的錢已經可以了: 我一個發小是做土木工程的,上海大學博士,參與很多著名建筑的工程,但是從薪資上看,還不如一些稍微像樣的公司的6年多的高級開發。為什么?這就是行業的紅利&#xf…

java屬于什么行業,吐血整理

微服務的發展 微服務倡導將復雜的單體應用拆分為若干個功能簡單、松耦合的服務,這樣可以降低開發難度、增強擴展性、便于敏捷開發。當前被越來越多的開發者推崇,很多互聯網行業巨頭、開源社區等都開始了微服務的討論和實踐。 微服務落地存在的問題 雖…

java struts2 ajax_在struts2的Action中返回Ajax數據

author:z_xiaofei168如何在struts2的action中返回數據(普通字符串、圖片)給ajax核心中的XMLHttpRequest對象。今天下午做項目,就是用戶注冊是時候,登錄名是否唯一,我用的ajax驗證,但怎么也不返回我想要的數據,糾結了老…

Nginx負載均衡策略有哪些?知識點總結+面試題解析

前言 看日期,今天都是4月了,這春招也差不多進入尾聲了。 近期任有不少朋友都在找工作,很多人開始抱怨,工作可真難找啊!身邊不少朋友問我咋搞呀,秋招都要結束了,工作還沒著落呢…額…這個…今年…

java bean jsp_JavaBean與Jsp

這一節我們總結一下JavaBean和Jsp的關系。1. JavaBeanjavaBean是一個遵循特定寫法的Java類,它通常具有如下特點:1)這個java類必須具有一個無參構造函數;2)屬性必須私有化;3)私有化的屬性必須通過public類型的方法暴露給其他程序&a…

P8級別的頂級“并發編程”寶典,最全指南

前言 前幾天我上班路上,和小區門口開車的師傅閑聊,發現他們雖然學歷不高,但掙錢的途徑不少,比如固定接送多位客戶,然后能通過朋友圈拓展新客戶,而且通過客戶口口相傳,也能不斷拉到生意&#xf…

java 追加寫入txt文件_ava如何追加寫入txt文件

(二)方法1public void method1() {FileWriter fw null;try {//如果文件存在,則追加內容;如果文件不存在,則創建文件File fnew File("E:\dd.txt");fw new FileWriter(f, true);} catch (IOException e) {e.printStackTrace();}Pri…

Redis宕機數據丟失解決方案,不吃透都對不起自己

前言 昨天,有個女孩子問我提高數據庫查詢性能有什么立竿見影的好方法? 這簡直是一道送分題,我自豪且略帶鄙夷的說,當然是加「索引」了。 她又不緊不慢的問,索引為什么就能提高查詢性能。 這還用問,索引…

c 加密 java解密錯誤_java解密出錯

展開全部你那個代碼少得東西太多,我左試右試,都是錯,也不知道你的初始32313133353236313431303231363533e78988e69d8331333332613762值都是什么。給你寫了一個加密解密的,希望對你有幫助。import java.security.NoSuchAlgorithmEx…

Redis成神之路電子版教程已問世,面試題+筆記+項目實戰

前言 我想對所有程序員說:除了看視頻、做項目來提高自身的技術之外,還有一種提升自己的專業技能就是:多!看!書!(本文內提到的書單筆者整理出了一份電子檔作為分享,文末有免費獲取方式…

java 中的event_Java中this與event有什么不同

Java中this與event有什么不同發布時間:2021-02-11 10:37:25來源:億速云閱讀:61作者:LeahJava中this與event有什么不同?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法&#xff…