日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【Spring-Boot】【入门 01】第一个 Spring Boot 程序

發(fā)布時間:2025/3/20 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Spring-Boot】【入门 01】第一个 Spring Boot 程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 一、SpringBoot入門
      • 1. SpringBoot簡介
      • 2.微服務(wù)
      • 3.Spring Boot 的基礎(chǔ)知識
      • 4.環(huán)境約束
      • 5.環(huán)境配置
        • maven設(shè)置
        • IDEA設(shè)置
    • 二、創(chuàng)建一個HelloWorld項目
      • 1.創(chuàng)建maven工程
      • 2.導(dǎo)入Spring Boot相關(guān)依賴
      • 3. 編寫一個主程序->啟動Spring Boot
      • 4. 編寫相關(guān)的Controller、Service
      • 5. 運行程序
      • 6. 簡化部署
      • 7.細(xì)節(jié)探究
        • 1.pom.xml文件
          • 1.父項目
          • 2.啟動器
          • 3. 主程序類、主入口類
            • @SpringBootApplication
            • @SpringBootConfiguration
            • **@EnableAutoConfiguration**
            • @Import({AutoConfigurationImportSelector.class})
      • 8. 使用Spring Initializer快速創(chuàng)建Spring Boot項目

一、SpringBoot入門

1. SpringBoot簡介

簡化Spring應(yīng)用開發(fā)一個框架;

整個Spring技術(shù)棧的一個大整合

J2EE開發(fā)的一站式解決方案

2.微服務(wù)

2014,martin fowler

微服務(wù):架構(gòu)風(fēng)格(服務(wù)微化)

一個應(yīng)用應(yīng)該是一組小型服務(wù);可以通過HTTP的方式進(jìn)行互通;

每一個功能元素最終都是一個可獨立替換和獨立升級的軟件單元,由點成網(wǎng),可以精準(zhǔn)對點的修改、刪除、添加

3.Spring Boot 的基礎(chǔ)知識

Spring框架的使用經(jīng)驗

熟練使用Maven進(jìn)行項目構(gòu)建和依賴管理

熟練使用Eclipse或者IDEA

4.環(huán)境約束

-jdk1.8

-maven:maven 3.3.99

-IDEA2018

-Spring Boot 2.2.5

5.環(huán)境配置

spring-boot官方文檔:文檔地址

maven設(shè)置

在maven中的setting.xml配置文件的profiles標(biāo)簽添加

<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>

IDEA設(shè)置

在 File-> settings ->搜索框中搜索“maven”->對以下三個變量進(jìn)行修改

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wdfXffXJ-1586584453439)(E:\Notes\SpringBoot\配置maven.png)]

二、創(chuàng)建一個HelloWorld項目

一個功能:瀏覽器發(fā)送hello請求,服務(wù)器接受請求并處理,相應(yīng)Hello World字符串

1.創(chuàng)建maven工程

流程:project -> new project -> maven -> 設(shè)置自己的域名和項目名,我的域名是:com.ideal,項目名是:spring-boot-01-helloworld->選擇存儲的位置->點擊右下角的Enable Auto-Import(在pom.xml中寫入一些依賴,編譯器會自動導(dǎo)入相關(guān)依賴文件)

2.導(dǎo)入Spring Boot相關(guān)依賴

在pom.xml寫入一些依賴,以2.2.5的版本為例

<!--這是繼承一個父項目--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--web依賴--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

3. 編寫一個主程序->啟動Spring Boot

/*** @ClassName: HelloWorldMainApplication* @description:這是一個主程序* @author: FFIDEAL* @Date: 2020/4/8 17:22*//* * 標(biāo)注 @SpringBootApplication 來標(biāo)注一個主程序類,說明這是一個Spring Boot應(yīng)用 * */ @SpringBootApplication public class HelloWorldMainApplication {public static void main(String[] args) {//Spring應(yīng)用啟動SpringApplication.run(HelloWorldMainApplication.class,args);} }

4. 編寫相關(guān)的Controller、Service

編寫Controller類,將瀏覽器的hello請求發(fā)送后返回一串hello world

/*這是一個請求類*/ @Controller public class HelloController {@ResponseBody /*把helloworld寫入瀏覽器*/@RequestMapping("/hello") /*這是一個接受瀏覽器hello請求*/public String hello(){return "Hello World";} }

5. 運行程序

http://localhost:8080/hello

6. 簡化部署

在pom.xml寫入一個依賴,這個插件可以將應(yīng)用打包成一個可執(zhí)行的jar包。

<!--這個插件可以將應(yīng)用打包成一個可執(zhí)行的jar包--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

之后再Maven Projects中的Lifcycle保重的package包,這樣就可以到處jar包了

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2HVJbZ3G-1586584453441)(E:\Notes\SpringBoot\打包jar.png)]

之后在運行這個jar包,也完成了部署

7.細(xì)節(jié)探究

1.pom.xml文件

1.父項目
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--上面代碼的父項目是以下代碼,真正管理SpringBoot的所有依賴版本--> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.5.RELEASE</version><relativePath>../../spring-boot-dependencies</relativePath></parent> <!--在artifictId點進(jìn)去就可以看到以下版本的限制--><properties><!--一些依賴版本的限制,包含了幾乎所有場景需要的依賴版本--><activemq.version>5.15.11</activemq.version><antlr2.version>2.7.7</antlr2.version><appengine-sdk.version>1.9.78</appengine-sdk.version><artemis.version>2.10.1</artemis.version><aspectj.version>1.9.5</aspectj.version><assertj.version>3.13.2</assertj.version><atomikos.version>4.0.6</atomikos.version><awaitility.version>4.0.2</awaitility.version>....</properties>

Spring Boot的版本仲裁中心:以后我們導(dǎo)入依賴默認(rèn)是不需要寫版本的,但是沒有在其中的自然還是要寫版本的

2.啟動器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <!--點擊artifactId連接,發(fā)現(xiàn)其中又有一些它的父依賴-->

spring-boot-starter-web:spring-boot-start是spring-boot場景啟動器,幫我們導(dǎo)入了web模塊正常運行所依賴的組件

Spring Boot將所有功能場景都抽取出來了,做成一個個的starters(啟動器,相關(guān)啟動器地址),只需要在項目中導(dǎo)入這些starter相關(guān)場景的所有依賴都會導(dǎo)入進(jìn)來。要什么功能就導(dǎo)入什么場景的啟動器(如郵件開發(fā)、web等等,都可以參照文檔)

3. 主程序類、主入口類
/*** @ClassName: HelloWorldMainApplication* @description:這是一個主程序* @author: FFIDEAL* @Date: 2020/4/8 17:22*//** 標(biāo)注 @SpringBootApplication 來標(biāo)注一個主程序類,說明這是一個Spring Boot應(yīng)用 * */@SpringBootApplicationpublic class HelloWorldMainApplication {public static void main(String[] args) {//Spring應(yīng)用啟動SpringApplication.run(HelloWorldMainApplication.class,args);}}
@SpringBootApplication

:Spring Boot應(yīng)用標(biāo)注在某個類上說明這個類是Spring Boot的主配置類,Spring Boot就應(yīng)該運行這個類的main方法來啟動Spring Boot應(yīng)用

//查看SpringBootApplication的底層,我們可以看到這樣一些注解 @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 {
@SpringBootConfiguration

? Spring Boot的配置類;標(biāo)注在某個類上,表示這是一個Spring Boot的配置類

? @Configuration:配置類上來標(biāo)注這個注解;

? 配置類 ----- 配置文件;配置類也是容器中的一個組件;@Component

@EnableAutoConfiguration

? 開啟自動配置功能;以前我們需要配置的東西,Spring Boot幫我們自動配置;@EnableAutoConfiguration告訴Spring Boot開啟自動配置功能;這樣自動配置才能生效;

//進(jìn)入@EnableAutoConfiguration的底層,我們可以看到如下的注解 @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration {

? @AutoConfigurationPackage:自動配置包

? @Import(AutoConfigurationPackage.Registrar.class):Spring的底層注解@import,給容器導(dǎo)入一個組件,導(dǎo)入的的組件由AutoConfigurationPackage.Registrar.class決定

? 將主配置類的(即@SpringBootApplication標(biāo)注的類)的所在包及下面所有子包里面的所有組件掃描到Spring容器;

@Import({AutoConfigurationImportSelector.class})

? AutoConfigurationImportSelector:導(dǎo)入一些組件的選擇器;

? 將所有需要導(dǎo)入的組件以全類名的方式返回,這些組件會就會被添加到容器中;

? 會給容器中導(dǎo)入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導(dǎo)入這個場景需要的所有組件,配置好這些組件

--------------可以學(xué)習(xí)Spring注解版,了解相關(guān)注解--------------------

8. 使用Spring Initializer快速創(chuàng)建Spring Boot項目

IDE都支持使用Spring的項目創(chuàng)建向?qū)Э焖賱?chuàng)建一個Spring-Boot項目,流程如下

選擇我們需要的模塊,向?qū)?lián)網(wǎng)創(chuàng)建Spring-Boot

默認(rèn)生成的Spring Boot:

  • 主程序已經(jīng)創(chuàng)建好了,我們只需要創(chuàng)建自己的邏輯

  • resource文件夾中目錄結(jié)構(gòu)

    • static:保存所有的靜態(tài)資源;js|css|images;

    • templates:保存所有的模板頁面;Spring-Boot默認(rèn)jar包使用嵌入式的Tomcat,默認(rèn)不支持JSP頁面;可以使用模板引擎(freemarker、thymeleaf);

    • application.properties:Spring-Boot應(yīng)用的配置文件,可以修改一些默認(rèn)設(shè)置

      #重新設(shè)置端口號 server.port=8080

ng Boot:

  • 主程序已經(jīng)創(chuàng)建好了,我們只需要創(chuàng)建自己的邏輯

  • resource文件夾中目錄結(jié)構(gòu)

    • static:保存所有的靜態(tài)資源;js|css|images;

    • templates:保存所有的模板頁面;Spring-Boot默認(rèn)jar包使用嵌入式的Tomcat,默認(rèn)不支持JSP頁面;可以使用模板引擎(freemarker、thymeleaf);

    • application.properties:Spring-Boot應(yīng)用的配置文件,可以修改一些默認(rèn)設(shè)置

      #重新設(shè)置端口號 server.port=8080
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的【Spring-Boot】【入门 01】第一个 Spring Boot 程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。