日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【Spring框架家族】SpringBoot基本介绍

發(fā)布時間:2025/5/22 javascript 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Spring框架家族】SpringBoot基本介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SpringBoot概述

SpringBoot提供了一種快速使用Spring的方式,基于約定優(yōu)于配置的思想,可以讓開發(fā)人員不必在配置與邏輯業(yè)務(wù)之間進(jìn)行思維的切換,全身心的投入到邏輯業(yè)務(wù)的代碼編寫中,從而大大提高了開發(fā)的效率,在一定程度上縮短了項目周期

Spring缺點

  • 配置繁瑣

    • 雖然Spring的組件代碼時輕量級的,但是它的配置卻是重量級的,一開始,Spring用Xml配置,而且是很多Xml配置
    • Spring2.5引入了基于注解的組件掃描,這消除了大量針對應(yīng)用程序自身組件顯示Xml配置
    • Spring3.0引入了基于java的配置,這是一種類型安全的可重構(gòu)配置方式,可以代替xml
    • 所有這些配置都代表開發(fā)時的損耗,因為在思考Spring特性配置和解決業(yè)務(wù)問題之間需要進(jìn)行思維切換,所以編寫配置擠占了編寫應(yīng)用程序邏輯的時間,和所有框架一樣,Spring實用,但是要求回報也不少
  • 依賴繁瑣

    • 項目的依賴管理也是一件耗時耗力的事情,在環(huán)境搭建時,需要分析要導(dǎo)入哪些庫的坐標(biāo),而且還需要分析導(dǎo)入與之有依賴關(guān)系的其他庫的坐標(biāo),一旦選錯依賴的版本,隨之而來的不兼容問題就會嚴(yán)重阻礙項目的開發(fā)進(jìn)度

SpringBoot功能

  • 自動配置
    Spring Boot的自動配置是一個運(yùn)行時(更準(zhǔn)確地說,是應(yīng)用程序啟動時)的過程,考慮了眾多因素,才決定Spring配置應(yīng)該用哪個,不該用哪個。該過程是SpringBoot自動完成的。

  • 起步依賴
    起步依賴本質(zhì)上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能。
    簡單的說,起步依賴就是將具備某種功能的坐標(biāo)打包到一起,并提供一些默認(rèn)的功能。

  • 輔助功能
    提供了一些大型項目中常見的非功能性特性,如嵌入式服務(wù)器、安全、指標(biāo),健康檢測、外部配置等。

  • 注意:Spring Boot 并不是對 Spring 功能上的增強(qiáng),而是提供了一種快速使用 Spring 的方式。

SpringBoot快速搭建項目

導(dǎo)入SpringBoot起步依賴

<!--springboot工程必須要繼承的父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.8.RELEASE</version></parent><dependencies><!--web開發(fā)的起步依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

定義Controller

@RestControllerpublic class HelloController {@RequestMapping("/hello")public String hello(){return " hello Spring Boot !";}}

編寫引導(dǎo)類

/*** 引導(dǎo)類。 SpringBoot項目的入口,此類需和Controller在同一個包下*/// 告訴框架這是SpringBoot應(yīng)用@SpringBootApplicationpublic class HelloApplication {public static void main(String[] args) {// SpringApplication一個Spring應(yīng)用,run啟動命令SpringApplication.run(HelloApplication.class,args);}}
SpringBoot起步依賴原理分析
  • 在spring-boot-starter-parent中定義了各種技術(shù)的版本信息,組合了一套最優(yōu)搭配的技術(shù)版本。
  • 在各種starter中,定義了完成該功能需要的坐標(biāo)合集,其中大部分版本信息來自于父工程。
  • 我們的工程繼承parent,引入starter后,通過依賴傳遞,就可以簡單方便獲得需要的jar包,并且不會存在版本沖突等問題。
SpringBoot配置-配置文件分類
SpringBoot是基于約定的,所以很多配置都有默認(rèn)值,但如果想使用自己的配置替換默認(rèn)配置的話,就可以使用application.properties或者application.yml(application.yaml)進(jìn)行配置。1. 默認(rèn)配置文件名稱:application 2. 在同一級目錄下優(yōu)先級為:properties>yml > yaml例如:配置內(nèi)置Tomcat的端口* properties:server.port=8080* yml: server: port: 8080 -- 冒號后面必須加空格
SpringBoot配置-yaml基本語法
YAML全稱是YAML Ain't Markup Language.YAML是一種直觀的能夠被電腦識別的數(shù)據(jù)序列化格式,并且容易被人類閱讀,容易和腳本語言交互,可以被支持YAML庫的不同編程語言程序?qū)?比如:C/C++,Ruby,Python,java,perl,C#,PHP等,YML文件時以數(shù)據(jù)為核心的,比傳統(tǒng)的XML更加簡潔 YAML文件擴(kuò)展名可以使用.yml或者.yaml
  • 大小寫敏感
  • 數(shù)據(jù)值前邊必須有空格,作為分隔符
  • 使用縮進(jìn)表示層級關(guān)系
  • 縮進(jìn)時不允許使用Tab鍵,只允許使用空格(各個系統(tǒng) Tab對應(yīng)的 空格數(shù)目可能不同,導(dǎo)致層次混亂)。
  • 縮進(jìn)的空格數(shù)目不重要,只要相同層級的元素左側(cè)對齊即可
  • ‘’#" 表示注釋,從這個字符一直到行尾,都會被解析器忽略。

對比:

# properties: server.port=8080 server.address=127.0.0.1# xml <server> <port>8080</port> <address>127.0.0.1</address> </server> # yml server: port: 8080 address: 127.0.0.1 name: abc

SpringBoot配置-yaml數(shù)據(jù)格式

對象(map):鍵值對的集合。

person: name: zhangsan# 行內(nèi)寫法,冒號后面都要有空格person: {name: zhangsan}

數(shù)組:一組按次序排列的值

address:# 使用 “- ”表示數(shù)組每個元素- beijing- shanghai# 行內(nèi)寫法address: [beijing,shanghai]

純量:單個的、不可再分的值

msg1: 'hello \n world' # 單引忽略轉(zhuǎn)義字符msg2: "hello \n world" # 雙引識別轉(zhuǎn)義字符

參數(shù)引用

name: 趙麗穎person:name: ${name} # 引用上邊定義的name值

SpringBoot配置-獲取數(shù)據(jù)

@Value

#獲取普通配置@Value("${name}") // ${寫的是配置文件中的key}private String name;#獲取對象屬性@Value("${person.name}")private String name2;#獲取數(shù)組@Value("${address[0]}")private String address1;#獲取純量@Value("${msg1}")private String msg1;

Evironment

@Autowiredprivate Environment env;System.out.println(env.getProperty("person.name"));System.out.println(env.getProperty("address[0]"));

兩種區(qū)別:

  • @Value是直接通過key獲取值,在多個方法都可以使用
  • Evironment對象通過調(diào)用getProperty(“key”)也可以獲取值,但是如果在多個方法中調(diào)用,則需要多次調(diào)用getProperty(“key”)

@ConfigurationProperties 作用:可以將javaBean與配置文件中的內(nèi)容進(jìn)行綁定

注意:prefix一定要寫

@Component@ConfigurationProperties(prefix = "person")public class Person {private String name;private int age;private String[] address;

補(bǔ)充:
實體類屬性標(biāo)記@Validated,自動校驗
屬性報價NotNull非空

SpringBoot配置-profile

在開發(fā)Spring Boot應(yīng)用時,通常同一套程序會被安裝到不同環(huán)境,比如:開發(fā)、測試、生產(chǎn)等。其中數(shù)據(jù)庫地址、服務(wù)器端口等等配置都不同,如果每次打包時,都要修改配置文件,那么非常麻煩。profile功能就是來進(jìn)行動態(tài)配置切換的。

  • profile是用來完成不同環(huán)境下,配置動態(tài)切換功能的。
  • profile配置方式:
    • 多profile文件方式:提供多個配置文件,每個代表一種環(huán)境。有一個主配置文件
      application-dev.properties/yml 開發(fā)環(huán)境
      application-test.properties/yml 測試環(huán)境
      application-pro.properties/yml 生產(chǎn)環(huán)境
    • yml多文檔方式
      在yml中使用 - - - 分隔不同配置,兩個 - - - 之就是一個獨立文檔
      使用spring.profiles屬性為文檔取名
  • profile激活方式
    配置文件: 再配置文件中配置:spring.profiles.active=dev
    虛擬機(jī)參數(shù):在VM options 指定:-Dspring.profiles.active=dev
    命令行參數(shù):java –jar xxx.jar --spring.profiles.active=dev

SpringBoot配置-項目內(nèi)部配置文件加載順序

加載順序為上文的排列順序,高優(yōu)先級配置的屬性會生效

  • file:./config/:當(dāng)前項目下的/config目錄下
  • file:./ :當(dāng)前項目的根目錄
  • classpath:/config/:classpath的/config目錄
  • classpath:/ :classpath的根目錄

SpringBoot配置-項目外部配置加載順序

外部配置文件的使用是為了對內(nèi)部文件的配合

1.命令行

java -jar app.jar --name="Spring“ --server.port=9000

2.指定配置文件位置

java -jar myproject.jar --spring.config.location=e://application.properties

3.外部不帶profile的properties文件

classpath:/config/application.propertiesclasspath:/application.properties

總結(jié)

以上是生活随笔為你收集整理的【Spring框架家族】SpringBoot基本介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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