【Spring 基礎】00 入門指南

【Spring 基礎】00 入門指南

文章目錄

  • 【Spring 基礎】00 入門指南
    • 1.簡介
    • 2.概念
      • 1)控制反轉(IoC)
      • 2)依賴注入(DI)
    • 3.核心模塊
      • 1)Spring Core
      • 2)Spring AOP
      • 3)Spring MVC
      • 4)Spring Data
      • 5)Spring Boot
    • 4.編寫 Hello World
      • 1)創建 Maven 項目
      • 2)編寫 Hello World 程序
      • 3)編寫Spring 配置文件
      • 4)編寫啟動程序
      • 5)運行
    • 總結

Spring 框架是 Java 領域最最流行和最最強大的開發框架 沒有之一

Spring 框架是 Java 領域最最流行和最最強大的開發框架 沒有之一

Spring 框架是 Java 領域最最流行和最最強大的開發框架 沒有之一

重要的事情,一定要說三遍。縱觀歷史在它的成長過程中,競爭對手確實存在,但是其對手最后都成為了陪襯!

1.簡介

Spring 它為我們提供了廣泛的功能,包括依賴注入、面向切面編程、數據訪問、事務管理等等,使得 Java 應用程序的開發更加簡便和高效。

下圖來源:

https://docs.spring.io/spring-framework/docs/5.0.0.RC3/spring-framework-reference/overview.html

在這里插入圖片描述

本文將為你提供一個簡潔而全面的 Spring 框架入門指南,純粹是為了能夠快速掌握基礎概念,并開始構建自己的 Spring 應用程序。

2.概念

Spring 框架是一個全面的Java應用程序開發框架,它提供了解決企業級應用開發問題的綜合性解決方案。核心特性包括 控制反轉(IoC)和 依賴注入(DI),使得組件之間的松散耦合成為可能。接下來就讓我們先去了解一下 IoC 和 DI 的基本概念吧。

在這里插入圖片描述

1)控制反轉(IoC)

控制反轉是一種設計原則,它將應用程序的控制權從應用程序代碼中轉移到外部容器。在 Spring 中,IoC 體現為將對象的創建和管理交給 Spring 容器,而不是由開發者手動管理。這通過使用 Spring 容器來實現,其中最核心的是 Bean 。

2)依賴注入(DI)

依賴注入是 IoC 的一種實現方式,它指的是將一個對象的依賴關系注入到對象本身,而不是在對象內部創建或查找依賴對象。Spring 通過 DI 來實現 IoC 確保對象之間的解耦。

3.核心模塊

Spring 框架由多個模塊組成,每個模塊都提供不同的功能

以下是Spring的一些核心模塊:

1)Spring Core

Spring Core 模塊包括 IoC 容器、Bean 定義、Bean 的生命周期管理等。

2)Spring AOP

Spring AOP 模塊支持面向切面編程,允許你在應用程序中定義橫切關注點,并在需要時將它們應用到代碼中。

3)Spring MVC

Spring MVC 模塊是一個基于MVC(Model-View-Controller)設計模式的 Web 框架,用于構建 Web 應用程序。

4)Spring Data

Spring Data 模塊簡化了數據訪問,支持多種數據存儲,包括關系型數據庫、NoSQL 數據庫等。

5)Spring Boot

重磅嘉賓,往往都是壓軸出場!

Spring Boot 模塊用于簡化 Spring 應用程序的開發和部署。它提供了自動配置、開箱即用的特性,使得構建獨立的、生產級別的Spring應用變得更加容易。

4.編寫 Hello World

現在讓我們回到本節的主角,通過一個簡單的實例來展示如何使用 Spring 框架構建一個基本的應用程序。

1)創建 Maven 項目

這里使用 [IDEA 工具]: (https://blog.csdn.net/yanyc0411/article/details/134746097) 開發

首先,點擊 File -> New -> Project,輸入項目信息(Name等),點擊 Create 按鈕

在這里插入圖片描述

然后,打開 pom.xml 添加 maven 依賴(spring-context),一定要點 maven 的刷新按鈕!

在這里插入圖片描述

pom.xml

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.31</version></dependency>
</dependencies>

2)編寫 Hello World 程序

編寫一個簡單的 Java 應用程序,打印 Hello World ,從 Spring 容器中獲取 Bean 并調用其打印方法。

首先,在 java 上點擊鼠標右鍵 -> New -> Java Class ,輸入名稱(此處直接把包創建出來啦),點擊回車

然后,再打開 SpringDemo,添加打印 Hello World 的方法

在這里插入圖片描述

SpringDemo.java

public class SpringDemo {public void hello() {System.out.println("Hello World");}
}

3)編寫Spring 配置文件

創建一個 Spring 配置文件(例如:applicationContext.xml),定義一個簡單的 Bean 。

首先,在 resources 上點擊鼠標右鍵 -> New -> File ,輸入名稱,點擊回車

然后,再打開 applicationContext.xml,添加 bean 信息

在這里插入圖片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定義一個Bean --><bean id="springDemo" class="org.example.cheney.SpringDemo"></bean>
</beans>

4)編寫啟動程序

首先,在 org.example.cheney 包上點擊鼠標右鍵 -> New -> Java Class,輸入名稱,點擊回車

然后,再打開 App,添加 從 Spring 容器中獲取 SpringDemo 實例,并執行 hello 方法的代碼

在這里插入圖片描述

App.java

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {String location = "applicationContext.xml";ApplicationContext context = new ClassPathXmlApplicationContext(location);// 從容器中獲取BeanSpringDemo springDemo = (SpringDemo) context.getBean("springDemo");// 調用Bean的方法springDemo.hello();}
}

5)運行

點擊 小綠三角,然后點擊 Run xxx,最后就在控制臺看到 Hello World 啦

在這里插入圖片描述

輸出結果:

Hello World

這只是 Spring 框架入門的簡單示例。隨著深入學習,你將能夠利用 Spring 的強大功能構建更復雜的應用程序。

總結

通過本文,你已經了解了Spring框架的核心概念、模塊和實際應用。以及詳細的寫了一個 SpringDemo 樣例去打印 Hello World,要深入學習,建議查閱Spring的官方文檔。

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

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

相關文章

php實現截取姓名中的第一個字作為頭像的實戰記錄

php 截取中文字符串第一個字 substr 函數 在 PHP 中&#xff0c;使用 substr 函數來截取中文字符串的第一個字。由于 PHP 默認的字符編碼是 UTF-8&#xff0c;它可以正確處理中文字符。 $chineseString "你好世界"; $firstChar substr($chineseString, 0, 1); e…

vue2 組件內路由守衛使用

1、beforeRouteEnter 進入頁面 to – 即將要跳轉到的頁面 form – 跳轉前的頁面&#xff0c;從哪個頁面跳轉過來的 next – 下一步&#xff0c;若無指定跳轉的路由&#xff0c;設置為空 next() 即可 beforeRouteEnter(to, from, next) {next() }, 使用 beforeRouteEnter 時&…

中文分詞演進(查詞典,hmm標注,無監督統計)新詞發現

查詞典和字標注 目前中文分詞主要有兩種思路&#xff1a;查詞典和字標注。 首先&#xff0c;查詞典的方法有&#xff1a;機械的最大匹配法、最少詞數法&#xff0c;以及基于有向無環圖的最大概率組合&#xff0c;還有基于語言模型的最大概率組合&#xff0c;等等。 查詞典的方法…

知識產權服務企業網站建設效果如何

知識產權服務也有較高的市場需求度&#xff0c;尤其如今互聯網深入到各個行業&#xff0c;無論個人還是企業都會以不同的方式經營&#xff0c;相應的為保障自身權益&#xff0c;注冊商標、專利等自然不可少&#xff0c;而對普通小白來說&#xff0c;想要完成這些流程也是有些難…

Python實現獲取b站視頻的彈幕內容

前言 本文是該專欄的第39篇,后面會持續分享python的各種干貨知識,值得關注。 在本專欄之前,有詳細介紹使用python增加b站視頻的播放量方法,感興趣的同學可往前翻閱《Python-增加b站視頻播放量》。而本文,筆者再來單獨的詳細介紹,通過python來獲取b站視頻的彈幕內容。如下…

CGAL的3D皮膚表面網格

1、介紹 Edelsbrunner 引入的皮膚表面和具有豐富而簡單的組合和幾何結構&#xff0c;使其適合在生物計算中模擬大分子。 對這些表面進行網格劃分通常是進一步處理其幾何形狀所必需的&#xff0c;例如在數值模擬和可視化中。 皮膚表面由一組加權點&#xff08;輸入球&#xff09…

力扣labuladong——一刷day70

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、力扣814. 二叉樹剪枝二、力扣1325. 刪除給定值的葉子節點 前言 這道題的難點在于要一直剪枝&#xff0c;直到沒有值為 0 的葉子節點為止&#xff0c;只有從…

RecursionError: maximum recursion depth exceeded in comparison

諸神緘默不語-個人CSDN博文目錄 這個bug的產生原因是運行rouge包時句子太長&#xff0c;所以遞歸次數過多了。完整的報錯信息懶得粘了&#xff0c;總之很長&#xff0c;解決方案就是手動在程序開始處就增大遞歸次數&#xff1a; import sys sys.setrecursionlimit(100000)具體…

html通過CDN引入Vue使用Vuex以及Computed、Watch監聽

html通過CDN引入Vue使用Vuex以及Computed、Watch監聽 近期遇到個需求&#xff0c;就是需要在.net MVC的項目中&#xff0c;對已有的項目的首頁進行優化&#xff0c;也就是寫原生html和js。但是咱是一個寫前端的&#xff0c;寫html還可以&#xff0c;.net的話&#xff0c;開發也…

K8S學習指南-minikube的安裝

簡介 Minikube 是一個用于在本地開發環境中運行 Kubernetes 集群的工具。它允許開發人員在單個節點上體驗 Kubernetes&#xff0c;無需配置復雜的生產環境。本指南將詳細介紹在 Windows、CentOS 和 Ubuntu 系統上安裝 Minikube 的步驟。 1. Windows 系統安裝 1.1 &#xff1…

期末速成數據庫極簡版【查詢】(3)

目錄 多表查詢 【8】多表連接——內連接 &#x1f642;等值連接 &#x1f642;自然連接 &#x1f642;非等值連接 【9】多表連接——外連接 【10】交叉連接不考 【11】聯合查詢 【12】擴展多表連接 【13】嵌套查詢 &#x1f642; 多表查詢 【8】多表連接——內連…

HIVE學習(hive基礎)

HIVE基礎介紹 一、HIVE簡介二、hive的數據類型1、基本數據類型2、復合數據類型 三、HIVE的DDL操作四、創建一個表1. 建表語句 五、修改表結構1.修改表名2. 列修改或增加3. 修改分區 五、常見函數六、一對一關聯left join左關聯right join 右關聯內連接全連接查詢只有A表的數據 …

計算機視覺-機器學習-人工智能頂會 會議地址

計算機視覺-機器學習-人工智能頂會 會議地址 最近應該要整理中文資料的參考文獻&#xff0c;很多會議文獻都需要補全會議地點&#xff08;新國標要求&#xff09;。四處百度感覺也挺麻煩的&#xff0c;而且沒有比較齊全的網站可以搜索。因此自己整理了一下計算機視覺-機器學習…

OSPF路由協議

隨著Internet技術在全球范圍的飛速發展&#xff0c;OSPF已成為目前應用最廣泛的路由協議之一。OSPF&#xff08;Open Shortest Path First&#xff09;路由協議是由IETF&#xff08;Internet Engineering Task Force&#xff09;IGP工作組提出的&#xff0c;是一種基于SPF算法的…

JS 云服務 Deno Depoly 宣布,推出定時運行功能 Deno Cron

如果需要定時執行 JS 腳本&#xff0c;以后多一個選項。 Web 構建日益復雜。編寫現代軟件包括利用云基礎設施、剖析模板代碼和管理復雜的配置&#xff0c;而開發人員只想專注于編寫業務邏輯。 Deno 旨在通過刪除配置和不必要的模板&#xff0c;從根本上簡化 Web 開發。我們將無…

網絡攻擊(三)--攻擊階段

5. 威脅建模階段 目標 了解威脅建模階段的工作內容 工作內容 威脅建模主要使用在情報搜集階段所獲取到的信息&#xff0c;來標識出目標系統上可能存在的安全漏洞與弱點。 在進行威脅建模時&#xff0c;確定最為高效的攻擊方法、所需要進一步獲取到的信息&#xff0c;以及從…

【前端】CSS浮動(學習筆記)

一、浮動 1、傳統網頁布局 網頁布局的本質&#xff1a;用 CSS 來擺放盒子&#xff0c;把盒子擺放到相應位置。 CSS 提供了三種傳統布局方式&#xff08;盒子如何進行排列順序&#xff09; 普通流&#xff08;標準流&#xff09;浮動定位 實際開發中&#xff0c;一個頁面基…

Go 反射技術判斷結構體字段數據為空

Api介紹 在Go語言中&#xff0c;反射API用于在運行時檢查類型信息、獲取和修改變量的值以及調用對象的方法。反射API包含了一組函數和類型&#xff0c;可以在程序運行時動態地操作對象。 以下是一些常用的反射API&#xff1a; reflect.TypeOf&#xff1a;返回一個值的類型信息。…

并查集基礎模板

題目我上面有人兒 代碼 #include <bits/stdtr1c.h> using namespace std; const int N 1005; int f[N]; int n; int siz[N]; // 初始化并查集 // void init() // { // for (int i 1; i < n; i) // { // f[i] i; // 初始化所有的節點都是自己的父節點 //…

Tomcat頭上有個叉叉

問題原因&#xff1a; 這是因為它就是個空的tomcat,并沒有導入項目運行 解決方案&#xff1a; war模式&#xff1a;發布模式&#xff0c;正式發布時用&#xff0c;將WEB工程以war包的形式上傳到服務器 war exploded模式&#xff1a;開發時用&#xff0c;將WEB工程的文件夾直接…