本篇文章,將從 0 淺入,從什麼是哈希表講起,然後再說 Java 是怎樣實現哈希表的。整個梳理過程,將通過源碼這個第一手的資料進行梳理分析,吸收知識、解決疑問,一步一步進行梳理,如果你是對 HashMap 懵懵懂懂的同學,那麼歡迎跟著我的節奏一起來梳理!全文1萬2000多字,歡迎慢慢食用! ...
【寫在前面】
- 長期做基於Spring Boot的企業應用,計劃將與應用相關的技術點,通過簡介、步驟、示例的方式,記錄並分享出來,用於作為Spring Boot入門的記錄與教程
- 計劃的內容有:
- Spring簡介
- 第一個Spring Boot項目
- Maven簡介
- 使用RESTful API提供後端服務
- 自動註入與自動裝配常用註解
- application.properties
- Lombok
- Actuator和Admin
- Swagger
- AOP
- ControllerAdvice
- Interceptor
- Filter
- Application、Session、Request&Response
- 文件上傳和文件下載
- 數據訪問
- DTO
- 標準響應封裝
- 複雜業務下的數據訪問
- 緩存
- 後端HTTP請求
- 定時任務
- 消息隊列
- 打包和部署
工具準備
- JDK 1.8
- IntellJ IDEA
- MySQL 5.7社區版
- Navicat
後端技術概要
- 現在企業級應用中,多採用前後端分離開發形式
- 在Java技術棧的後端開發中,多以Spring Boot開發REST介面形式提供服務
- Java、Java Web、Spring為Spring Boot應用提供了基石
- 要很好的開發一個後端項目,需要掌握與Spring Boot相關的很多內容,包括
-
Maven:通過pom.xml配置快速引入依賴包,快速構建與發佈
-
集成數據訪問組件:MyBatis及MyBatis plus集成與使用
-
集成緩存:EhCache、Redis緩存工具使用
-
Swagger:提供可閱讀了後端介面
-
Git:IDE中集成進行代碼管理
-
Tomcat:項目發佈到Tomcat
-
Nginx:項目在Linux運行並通過Nginx反射代理出去
-
Spring簡介
概述
- Spring是一個支持快速開發Java企業級應用程式的框架,可以和大量的開源框架集成
- Spring是一個IoC和AOP容器框架
- 由20多個模塊組成,1300多個文件或組件構成,這些組件被分別整合在核心容器(Core Container)、AOP(Aspect Oriented Programming)、設備支持(Instrumentation)、數據訪問及集成(Data Access/Integration)、Web、消息處理(Messaging)、Test等模塊集合
- 在Spring基礎上誕生了很多項目,如Spring Data、Spring Security、Spring MVC、Spring Boot等
IoC(Inversion of Control)
- 控制反轉,是一種設計思想,將原來用戶主動創建所有對象,轉變為,大部分重要的對象使用容器創建,並由容器管理對象的生命周期,減少代碼間的耦合
- 核心邏輯是,通過藉助“第三方”,來實現具有依賴關係的對象間解耦
- Spring中提供了完備的IoC容器,也稱Spring容器,即“第三方”
- 下圖左邊為傳統new對象方式使用對象;右邊為藉助"第三方”Spring容器方式通過自動註入、自動裝配使用
DI(Dependency Injection)
- 依賴註入,控制反轉的一種實現方式或另一種表述方式
- 當對象對其他對象有依賴的時候,通過配置或自動註入並裝配使用;如Student對象需要Class對象的時候,Class對象可以通過屬性註入的方式註入到Student對象
Spring特點
優點
- Spring屬於低侵入,代碼污染極低
- 使用Spring容器,降低組件之間的耦合,更專註於業務邏輯
- AOP的很好支持,速食麵向切麵編程
- 提供眾多服務組件,事務管理等功能,對主流的框架提供集成支持,如Hibernate,Struts2,JPA等
- Spring的高度可開放性,不強制應用完全依賴於Spring,可自由選擇Spring部分或全部來實現業務
缺點
- 重量級框架,裡面包含了很多組件,比如數據訪問、MVC、事務、AOP等,入門門檻高
- 集成和配置複雜,尤其是集成第三方組件或框架時,需要進行XML配置
- 構建和部署複雜,比如要依賴第三方的Web伺服器
示例
創建一個Spring控制台應用(使用IDEA)
創建步驟
- File菜單中選擇New Project
- 在菜單中選擇Spring,只勾選 Spring,不選擇其他項
- 項目創建完成後,相應的Spring的jar包都載入到依賴中了,存儲在lib目錄,也可以往裡面添加自己的Jar包
- 在src目錄下創建一個實體類(也可以是相應的業務類),如UserEntity
- 在src目錄下創建一個Spring配置文件(右鍵New->XML Configuration File->Spring Config),並配置相關bean,如針對UserEntity的bean
- 在src目錄下創建一個帶main方法的類,使用ClassPathXmlApplicationContext,載入XML中的bean配置,並通過getBean獲取容器中的對象bean
具體內容見附件1-spring-console-demo:https://files.cnblogs.com/files/sangrei/1-spring-console-demo.zip?t=1667127156。