最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 與微服務入門實戰(zhàn)詳細總結

 更新時間:2025年07月21日 11:04:35   作者:越來越無動于衷  
本文講解SpringBoot框架的核心特性如快速構建、自動配置、零XML與微服務架構的定義、演進及優(yōu)缺點,涵蓋開發(fā)環(huán)境準備和HelloWorld實戰(zhàn),強調其在簡化開發(fā)流程、支持分布式系統(tǒng)及云原生部署方面的優(yōu)勢,本文給大家介紹Spring Boot 與微服務詳細總結,感興趣的朋友一起看看吧

一、Spring Boot 核心概述

Spring Boot 是簡化 Spring 應用開發(fā)的框架,作為 Spring 技術棧的整合方案和 J2EE 開發(fā)的一站式解決方案,其核心優(yōu)勢體現(xiàn)在:

  • 快速創(chuàng)建獨立運行的 Spring 項目,輕松集成主流框架
  • 內(nèi)置 Servlet 容器(如 Tomcat),無需打包為 war 包即可部署
  • 提供 starters 機制,實現(xiàn)自動依賴管理與版本控制,減少版本沖突問題
  • 大量自動裝配功能簡化開發(fā)流程,同時支持自定義默認配置
  • 零 XML 配置、無代碼生成,真正實現(xiàn)開箱即用
  • 內(nèi)置準生產(chǎn)環(huán)境的運行時監(jiān)控功能,便于項目運維
  • 與云計算天然適配,滿足現(xiàn)代部署需求

二、微服務架構詳解

1. 微服務的定義與演進

2014 年,Martin Fowler 提出微服務架構理念(參考文檔:Microservices Guide)。從技術演進路徑看,架構風格經(jīng)歷了:Servlet → SSH → SSM → 單體應用 → SOA → Spring Cloud 的發(fā)展過程。

微服務的核心定義為:一種將應用拆分為多個小型、獨立業(yè)務服務的架構風格。每個服務具備獨立處理邏輯和輕量通訊機制,可部署在單個或多個服務器上,是松耦合、具有有界上下文的面向服務架構。

  • 單體應用:所有功能模塊集中在一個應用中(ALL IN ONE)
  • 微服務:每個功能元素都是可獨立替換和升級的軟件單元,通過 HTTP 等協(xié)議實現(xiàn)服務間通信

2. 微服務的優(yōu)缺點

優(yōu)勢缺點
聚焦單一業(yè)務功能,服務體積小巧分布式系統(tǒng)操作復雜,運維成本高
支持 2-5 人小團隊獨立開發(fā)可能存在重復開發(fā)工作
松耦合設計,開發(fā)與部署獨立問題跟蹤困難,排查成本高
支持多語言開發(fā)服務數(shù)量增加后,管理復雜度指數(shù)上升
易于集成自動化部署和持續(xù)集成-
便于理解、修改和維護-
可按需擴展,資源利用更高效-
支持中低端服務器部署-
易于與第三方系統(tǒng)集成-
數(shù)據(jù)存儲靈活(獨立數(shù)據(jù)庫或統(tǒng)一數(shù)據(jù)庫)-

三、Spring Boot 開發(fā)環(huán)境準備

1. 環(huán)境約束

  • JDK:1.8 及以上(推薦 1.8.0_112 版本)
  • Maven:3.x 版本(推薦 3.3 以上)
  • 開發(fā)工具:IntelliJ IDEA 2017+ 或 STS
  • Spring Boot 版本:本文以 2.0.2.RELEASE 為例(基于 Spring 5)

2. Maven 配置

在 Maven 的 settings.xml 配置文件的 profiles 標簽中添加:

<profile>
    <id>jdk‐1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>

3 idea設置

四、Spring Boot 入門實戰(zhàn)(Hello World)

1. 實現(xiàn)步驟

  1. 創(chuàng)建 Maven 工程(選擇 jar 類型)
  2. 導入依賴
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
  1. 編寫主程序類
@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldMainApplication.class, args);
    }
}
  1. 編寫 Controller
@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}
  1. 運行測試:執(zhí)行主程序的 main 方法,訪問 http://localhost:8080/hello
  2. 簡化部署:添加打包插件后,使用 mvn package 打包,通過 java -jar 命令運行
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2. 核心原理探究

(1)POM 文件分析
  • 父項目spring-boot-starter-parent 的父項目是 spring-boot-dependencies,它是版本仲裁中心,管理所有依賴版本,因此導入依賴時通常無需指定版本。
  • 啟動器(Starter)spring-boot-starter-web 是 Web 場景啟動器,自動導入 Web 開發(fā)所需的組件(如 Spring MVC、Tomcat 等)。Spring Boot 將不同功能場景封裝為 starters,開發(fā)者只需導入對應 starter 即可快速集成功能。
(2)主程序類注解分析

@SpringBootApplication 是核心注解,由以下注解組成:

/**
* @SpringBootApplication 來標注一個主程序類,說明這是一個Spring Boot應用
*/
@SpringBootApplication
public class HelloWorldMainApplication {
     public static void main(String[] args) {
         // Spring應用啟動起來
         SpringApplication.run(HelloWorldMainApplication.class,args);
     }
}

@SpringBootConfiguration:標識為 Spring Boot 配置類,內(nèi)部包含 @Configuration 注解,說明配置類也是容器組件(@Component)。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
   @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
   @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {


@EnableAutoConfiguration:開啟自動配置,包含:

@AutoConfigurationPackage:通過 @Import 導入 AutoConfigurationPackages.Registrar,將主配置類所在包及子包下的組件掃描到 Spring 容器。以前我們需要配置的東西,Spring Boot幫我們自動配置;@EnableAutoConfiguration告訴SpringBoot開啟自動配置功能;這樣自動配置才能生效;

@AutoConfigurationPackage:自動配置包

@Import(EnableAutoConfigurationImportSelector.class):從 META-INF/spring.factories 中加載自動配置類(xxxAutoConfiguration),自動配置場景所需組件,替代手動配置。Spring的底層注解@Import,給容器中導入一個組件;導入的組件由AutoConfigurationPackages.Registrar.class;將主配置類(@SpringBootApplication標注的類)的所在包及下面所有子包里面的所有組件掃描到Spring容器;

@Import(EnableAutoConfigurationImportSelector.class);

給容器中導入組件?EnableAutoConfigurationImportSelector:導入哪些組件的選擇器;

將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中;會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件,

并配置好這些組件;

有了自動配置類,免去了我們手動編寫配置注入功能組件等的工作;SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader)

Spring Boot在啟動的時候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動配置類導入到容器中,自動配置類就生效,幫我們進行自動配置工作;以前我們需要自己配置的東西,自動配置類都幫我們;

到此這篇關于Spring Boot 與微服務詳細總結的文章就介紹到這了,更多相關Spring Boot微服務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringCloud降級規(guī)則使用介紹

    SpringCloud降級規(guī)則使用介紹

    這篇文章主要介紹了SpringCloud降級規(guī)則,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • JavaEE開發(fā)基于Eclipse的環(huán)境搭建以及Maven Web App的創(chuàng)建

    JavaEE開發(fā)基于Eclipse的環(huán)境搭建以及Maven Web App的創(chuàng)建

    本文主要介紹了如何在Eclipse中創(chuàng)建的Maven Project,本文是JavaEE開發(fā)的開篇,也是基礎。下面內(nèi)容主要包括了JDK1.8的安裝、JavaEE版本的Eclipse的安裝、Maven的安裝、Tomcat 9.0的配置、Eclipse上的M2Eclipse插件以及STS插件的安裝。
    2017-03-03
  • Java中try-catch的使用及注意細節(jié)

    Java中try-catch的使用及注意細節(jié)

    現(xiàn)在有很多的語言都支持try-catch,比如常見的就是c++,java等,這篇文章主要給大家介紹了關于Java中try-catch的使用及注意細節(jié)的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 圖解Springboot集成七牛云并實現(xiàn)圖片上傳功能過程

    圖解Springboot集成七牛云并實現(xiàn)圖片上傳功能過程

    在實際開發(fā)中 ,基本都會有應用到文件上傳的場景,但隨著或多或少的需求問題,之前有在springboot上用過七牛云實現(xiàn)圖片上傳,今天因為某些原因又重新使用了下七牛云因此想總結下七牛云
    2021-11-11
  • Java實現(xiàn)的二叉樹常用操作【前序建樹,前中后遞歸非遞歸遍歷及層序遍歷】

    Java實現(xiàn)的二叉樹常用操作【前序建樹,前中后遞歸非遞歸遍歷及層序遍歷】

    這篇文章主要介紹了Java實現(xiàn)的二叉樹常用操作,包括二叉樹的前序建樹,前中后遞歸非遞歸遍歷及層序遍歷等相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • 解決Idea報錯There is not enough memory to perform the requested operation問題

    解決Idea報錯There is not enough memory 

    在使用Idea開發(fā)過程中,可能會遇到因內(nèi)存不足導致的閃退問題,出現(xiàn)"There is not enough memory to perform the requested operation"錯誤時,可以通過調整Idea的虛擬機選項來解決,方法是在Idea的Help菜單中選擇Edit Custom VM Options
    2024-11-11
  • JAVA生成pdf文件的實操教程

    JAVA生成pdf文件的實操教程

    PDF是可移植文檔格式,是一種電子文件格式,具有許多其他電子文檔格式無法相比的優(yōu)點,下面這篇文章主要給大家介紹了關于JAVA生成pdf文件的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • 關于dubbo的RPC和RESTful性能及對比

    關于dubbo的RPC和RESTful性能及對比

    這篇文章主要介紹了關于dubbo的RPC和RESTful性能及對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • postman中POST請求時參數(shù)包含參數(shù)list設置方式

    postman中POST請求時參數(shù)包含參數(shù)list設置方式

    這篇文章主要介紹了postman中POST請求時參數(shù)包含參數(shù)list設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 深入理解JAVA多線程之線程間的通信方式

    深入理解JAVA多線程之線程間的通信方式

    下面小編就為大家?guī)硪黄钊肜斫釰AVA多線程之線程間的通信方式。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05

最新評論

盐城市| 丰城市| 广饶县| 布拖县| 山西省| 湖北省| 西青区| 杭锦后旗| 得荣县| 色达县| 水富县| 左贡县| 葫芦岛市| 阿巴嘎旗| 宜章县| 稷山县| 河间市| 德昌县| 万安县| 微博| 贵港市| 漾濞| 耒阳市| 古蔺县| 娱乐| 平邑县| 印江| 曲沃县| 麻城市| 屏南县| 海城市| 绵阳市| 抚松县| 剑川县| 丰城市| 方山县| 井研县| 社会| 新宁县| 大渡口区| 岱山县|