【自學筆記】Spring基礎知識點總覽-持續更新

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • Spring 基礎知識點總覽
    • 1. Spring 框架簡介
    • 2. IoC(控制反轉)與 DI(依賴注入)
      • 2.1 IoC 容器
      • 2.2 依賴注入方式
      • 示例代碼(構造器注入)
    • 3. Spring MVC
      • 3.1 核心組件
      • 示例代碼(Spring MVC 控制器)
    • 4. AOP(面向切面編程)
      • 4.1 示例代碼(使用注解的 AOP)
    • 5. Spring Boot
      • 5.1 示例代碼(Spring Boot 主類)
  • 總結


Spring 基礎知識點總覽

1. Spring 框架簡介

Spring 是一個開源的 Java/Java EE 全功能棧(full-stack)的應用程序框架,它提供了廣泛的企業級功能,包括數據訪問、事務管理、Web 框架、AOP(面向切面編程)、測試等。Spring 框架的核心特性之一是 IoC(控制反轉)和 DI(依賴注入)。

2. IoC(控制反轉)與 DI(依賴注入)

2.1 IoC 容器

IoC 容器是 Spring 框架的核心,它負責創建、配置和管理應用中的對象及其依賴關系。

2.2 依賴注入方式

  • 構造器注入
  • Setter 注入
  • 接口注入(較少使用)

示例代碼(構造器注入)

// 定義一個簡單的服務類
public class UserService {private UserRepository userRepository;// 構造器注入public UserService(UserRepository userRepository) {this.userRepository = userRepository;}public void printUserInfo() {User user = userRepository.getUserById(1);System.out.println("User: " + user.getName());}
}// 定義一個簡單的倉庫接口和實現類
public interface UserRepository {User getUserById(int id);
}public class UserRepositoryImpl implements UserRepository {@Overridepublic User getUserById(int id) {// 模擬從數據庫獲取用戶return new User(id, "John Doe");}
}// 配置類
@Configuration
public class AppConfig {@Beanpublic UserRepository userRepository() {return new UserRepositoryImpl();}@Beanpublic UserService userService(UserRepository userRepository) {return new UserService(userRepository);}
}// 主類
public class MainApplication {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);UserService userService = context.getBean(UserService.class);userService.printUserInfo();context.close();}
}

3. Spring MVC

Spring MVC 是一種基于 Java 的實現 MVC(Model-View-Controller)設計模式的 Web 框架。

3.1 核心組件

  • DispatcherServlet:前端控制器,負責接收請求并分發給相應的處理器。
  • HandlerMapping:負責根據請求 URL 找到對應的處理器。
  • HandlerAdapter:負責調用處理器的方法并處理返回值。
  • ViewResolver:負責解析視圖名并生成視圖對象。

示例代碼(Spring MVC 控制器)

@Controller
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public String getUser(@PathVariable int id, Model model) {User user = userService.getUserById(id);model.addAttribute("user", user);return "userView";}
}

4. AOP(面向切面編程)

AOP 是一種編程范式,它允許你將橫切關注點(如日志、事務管理等)從業務邏輯中分離出來,以提高代碼的可維護性和可讀性。

4.1 示例代碼(使用注解的 AOP)

@Aspect
@Component
public class LoggingAspect {@Before("execution(* com.example.service.*.*(..))")public void logBefore() {System.out.println("Method execution started");}@After("execution(* com.example.service.*.*(..))")public void logAfter() {System.out.println("Method execution finished");}
}

5. Spring Boot

Spring Boot 是基于 Spring 框架的一個快速開發工具包,它簡化了基于 Spring 的應用的創建和開發過程。

5.1 示例代碼(Spring Boot 主類)

@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

這個模板只是一個起點,你可以根據自己的學習進度和需要添加更多的知識點和代碼示例。希望這個模板能幫助你有效地分享你的 Spring 學習成果!

總結

提示:這里對文章進行總結:
例如:以上就是今天要講的內容,自學記錄Spring基礎知識點總覽。

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

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

相關文章

WordPress多語言插件GTranslate

GTranslate是一個免費的WordPress多語言插件,它允許您將網站內容翻譯成多種語言。這個插件提供了一個簡單易用的界面,讓您可以在WordPress后臺直接進行翻譯操作。以下是GTranslate插件的一些主要特點: 免費使用:GTranslate插件完…

數列極限入門習題

數列極限入門習題 lim ? n → ∞ ( 1 1 2 1 3 ? 1 n ) 1 n \lim\limits_{n\rightarrow\infty}(1 \frac{1}{2}\frac{1}{3}\cdots\frac{1}{n})^{\frac{1}{n}} n→∞lim?(121?31??n1?)n1? lim ? n → ∞ ( 1 n 1 1 n 2 ? 1 n n ) \lim\limits_{n\rightarrow\…

嵌入式學習前要了解的基礎知識

一、電壓和電流 在嵌入式開發中,電壓和電流是兩個基本的電氣概念,對于理解和設計電子電路至關重要。它們直接影響到嵌入式系統的性能、功耗、可靠性和安全性。 電壓(Voltage) 電壓是電場力推動電荷移動的能力,通常以…

機器學習:強化學習的epsilon貪心算法

強化學習(Reinforcement Learning, RL)是一種機器學習方法,旨在通過與環境交互,使智能體(Agent)學習如何采取最優行動,以最大化某種累積獎勵。它與監督學習和無監督學習不同,強調試錯…

Spring學習筆記03——Spring Boot的文件結構

Spring boot常見的文件結構: src/ ├── main/ │ ├── java/ │ │ └── com.example.demo/ │ │ ├── DemoApplication.java # 主入口 │ │ ├── config/ # 配置類 │ │ ├── controller/ …

談談 HTTPS 的工作原理,SSL / TLS 握手流程是什么?

一、HTTPS 核心機制:非對稱加密 對稱加密 HTTPS HTTP over TLS/SSL,通過 ?混合加密體系? 解決三大問題: ?防竊聽? - 對稱加密傳輸內容(如 AES)?防篡改? - 數字簽名驗證數據完整性?防冒充? - 數字證書驗證服…

共軛梯度法筆記

一、梯度下降法 x k 1 x k ? α ? f ( x k ) x_{k1} x_k - \alpha \nabla f(x_k) xk1?xk??α?f(xk?) 這是普通的梯度下降公式,有兩個量是關鍵,步長 α \alpha α和方向 ? f ( x k ) \nabla f(x_k) ?f(xk?)。這里的方向直接選擇了梯度方向&…

ubuntu 啟動不起來,光標閃爍 解決方法

ubuntu 啟動不起來,光標閃爍 進不了系統,解決方法 按ctrl alt f2,進入終端,登錄。 jounal -b 查看啟動日志。 發現是找不到顯卡驅動程序。 解決方法: 卸載nvidia程序。 sudo systemctl stop gdm # 適用于GNOME…

CSS - 妙用Sass

官方文檔:https://www.sass.hk/docs/ 1.例1: each $theme in $themeList {$themeKey: map-get($theme, key);media screen and (weex-theme: $themeKey) {.btnText {max-width: 150px;include font(map-get($theme, medFont),map-get($theme, subFontS…

chromadb向量數據庫使用 (2)

目錄 代碼代碼解釋**1. 導入 chatGLM 嵌入函數****2. 創建 ChromaDB 客戶端和集合****3. 查詢集合中的數據數量****4. 添加數據到集合****5. 獲取已存儲的文檔****6. 更新文檔****7. 再次獲取數據,驗證更新結果****8. 刪除某個文檔****9. 獲取已刪除的文檔****總結*…

我的世界1.20.1forge模組開發進階物品(7)——具有動畫、3D立體效果的物品

基礎的物品大家都會做了對吧?包括武器的釋放技能,這次來點難度,讓物品的貼圖呈現動畫效果和扔出后顯示3D立體效果,這個3D立體效果需要先學習blockbench,學習如何制作貼圖。 Blockbench Blockbench是一個用于創建和編輯三維模型的免費軟件,特別適用于Minecraft模型的設計…

大模型在敗血癥預測及圍手術期管理中的應用研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與創新點 1.3 研究方法與數據來源 二、敗血癥概述 2.1 定義與流行病學 2.2 病因與發病機制 2.3 臨床表現與診斷標準 2.4 并發癥與危害 三、大模型技術原理及在醫療領域的應用 3.1 大模型技術概述 3.2 大模型在醫療領…

SpringBoot接口自動化測試實戰:從OpenAPI到壓力測試全解析

引言:接口測試的必要性 在微服務架構盛行的今天,SpringBoot項目的接口質量直接影響著系統穩定性。本文將分享如何通過自動化工具鏈實現接口的功能驗證與性能壓測,使用OpenAPI規范打通測試全流程,讓您的接口質量保障體系更加完備。…

微軟具身智能感知交互多面手!Magma:基于基礎模型的多模態AI智能體

作者: Jianwei Yang, Reuben Tan, Qianhui Wu, Ruijie Zheng, Baolin Peng, Yongyuan Liang, Yu Gu, MuCai, SeonghyeonYe, JoelJang, Yuquan Deng, Lars Liden, Jianfeng Gao 單位:微軟研究院,馬里蘭大學,威斯康星大學麥迪遜分校…

Linux中jdk-8u291-linux-x64 中jdk工具包

jdk-8u291-linux-x64 指的是適用于 64 位 Linux 系統的 Java 開發工具包(JDK)8 更新 291 版本。這是 JDK 的一個特定版本,用于開發 Java 應用程序和小程序。 jdk-8u291-linux-x64 網盤下載鏈接:夸克網盤分享

Baklib云內容中臺的核心架構是什么?

云內容中臺分層架構解析 現代企業內容管理系統的核心在于構建動態聚合與智能分發的云端中樞。以Baklib為代表的云內容中臺采用三層架構設計,其基礎層為數據匯聚工具集,通過標準化接口實現多源異構數據的實時采集與清洗,支持從CRM、ERP等業務…

17.3 LangSmith Evaluation 深度解析:構建數據驅動的模型優化體系

LangSmith Evaluation 深度解析:構建數據驅動的模型優化體系 關鍵詞:模型評估體系、自動化測試框架、業務指標對齊、A/B測試集成、生產級質量監控 1. Evaluation 核心功能全景 1.1 評估維度矩陣 維度評估指標示例采集方式質量評估準確率、相關性評分、事實性檢查人工標注+A…

華為 VRP 系統簡介配置SSH,TELNET遠程登錄

華為 VRP 系統簡介&配置TELNET遠程登錄 1.華為 VRP 系統概述 1.1 什么是 VRP VRP(Versatile Routing Platform 華為數通設備操作系統)是華為公司數據通信產品的通用操作系統平臺,從低端到核心的全系列路由器、以太網交換機、業務網關等…

算法基礎 -- 字符串哈希的基本概念和數學原理分析

字符串哈希的基本概念和數學原理分析 1. 字符串哈希的定義和基本概念 哈希函數的定義 哈希函數(Hash Function)是一種將任意長度的輸入映射為固定長度輸出的函數。對于字符串而言,哈希函數通過某種算法將字符串轉換成一個整數,…

從新加坡《Companion Guide on Securing AI Systems 》看可信AI全生命周期防護框架構建

從新加坡《AI系統安全指南配套手冊》看可信AI全生命周期防護框架構建 一、引言 1.1 研究背景與意義 近年來,人工智能(AI)技術以前所未有的速度蓬勃發展,已然成為推動各行業變革與創新的核心驅動力。從醫療領域輔助疾病診斷,到金融行業的風險預測與智能投顧,再到交通領…