目錄
一、安裝插件
二、創(chuàng)建Spring Boot項(xiàng)目
1、創(chuàng)建項(xiàng)目
1.1?使用IDEA創(chuàng)建
?1.2?網(wǎng)頁版本創(chuàng)建
2、項(xiàng)目目錄介紹與運(yùn)行
三、Sping Boot的配置文件(重點(diǎn))
??1、.properties配置文件
(1)基礎(chǔ)語法:Key = value
(2)讀取配置?件中的內(nèi)容,@Value 注解使?“${}”的格式讀??;
??2、.yml配置文件
(1)基礎(chǔ)語法:key: value
(2)配置數(shù)據(jù)庫及基本數(shù)據(jù)類型:讀取@Value{“${ }”},與properties 相同。
?(3)配置字符串并讀?。鹤x取@Value{“${ }”}
(4)配置對象并讀?。菏?注解@ConfigurationProperties 來讀取+@Autowired
(5)配置集合并讀?。汉蜕厦娅@取對象的方式一致,在,yml文件中集合的形式是:-加空格后面寫具體內(nèi)容。
(6)配置map:與讀取集合的方式相同,只是.yml文件中map的配置格式是:隔開的。
??3、補(bǔ)充:多平臺系統(tǒng)配置項(xiàng)
一、安裝插件
? ? ? ? Spring和Tomcat都是apache開源組織的。創(chuàng)建一個SpringBoot項(xiàng)目,需要安裝插件(專業(yè)版本不需要,社區(qū)版本需要)。
1、確認(rèn)自己的IDEA版本
IDEA版本在 2021.1 -2022.1.4 下載插件 Spring-boot-helper(我自己的就是這個版本),放在自己電腦的一個文件夾下,后面一步要使用。
https://plugins.jetbrains.com/plugin/18622-spring-boot-helper/versions
?2、查找插件
? ? ? ? 我們一般的查找插件方式如下,但是注意,我們這里不要直接點(diǎn)擊install,因?yàn)檫@個是要收費(fèi)的。
點(diǎn)擊右上角的“齒輪”圖標(biāo),選擇從自己電腦上安裝,也就是第一步中我們自己下載好的壓縮包。安裝好之后重啟即可。
?最終安裝好的效果
二、創(chuàng)建Spring Boot項(xiàng)目
? ? ? ? ?首先我們知道為什么要使用Spring Boot?目的就是為了簡化Spring程序開發(fā)。
知道Spring Boot的優(yōu)點(diǎn)?
(1)快速集成框架:Spring Boot提供了啟動添加依賴的功能,用于秒級集成各種框架;
(2)內(nèi)置運(yùn)行容器:無序配置Tomcat和Web容器,直接運(yùn)行和部署程序;
(3)快速部署項(xiàng)目:無需外部容器即可啟動并運(yùn)行項(xiàng)目;
(4)使用注解和配置的方式進(jìn)行開發(fā):不需要繁瑣的XML文件;
(5)支持更多的監(jiān)控的指標(biāo),可以更好的了解項(xiàng)目的運(yùn)行情況。
可能有些還不太理解,但是后面學(xué)習(xí)完之后可能會對它的優(yōu)點(diǎn)有一個更深入的理解。
1、創(chuàng)建項(xiàng)目
1.1?使用IDEA創(chuàng)建
?
?
?創(chuàng)建好之后,引入依賴?。▊€人感覺這是最難的一步,因?yàn)榫W(wǎng)絡(luò)不好,你怎么引入都引入不進(jìn)來,非常的崩潰)而且我還遇見一個問題,就是創(chuàng)建的pom文件中自動生成的是2.7.13.RELEASE這個版本,怎么切換網(wǎng)絡(luò)都不行,最后發(fā)現(xiàn)IDEA生成的這個版本官網(wǎng)上就不存在!因此將版本改為2.7.13即可!最后包也引入成功了,但是pom文件中有一處還是標(biāo)紅,但是不影響使用,如果有知道這個問題的小伙伴可以告訴我下~
?1.2?網(wǎng)頁版本創(chuàng)建
如果有小伙伴不想安裝這個插件,當(dāng)然也可以使用網(wǎng)頁版進(jìn)行項(xiàng)目的創(chuàng)建。
打開網(wǎng)址:https://start.spring.io
2、項(xiàng)目目錄介紹與運(yùn)行
?在創(chuàng)建好項(xiàng)目之后,會自動生成一個主函數(shù),我們運(yùn)行一下,成功了才真正說明我們這個項(xiàng)目創(chuàng)建成功了。
?在網(wǎng)址輸入:
?注意:在學(xué)習(xí)Spring Boot的時候,最大的一個感受就是:最難的不是寫代碼,而是配置環(huán)境。后來經(jīng)過一定的學(xué)習(xí)又感受到,在Spring Boot階段,最重要的一個準(zhǔn)則就是:約定大于配置!
比如,在上面測試項(xiàng)目是否創(chuàng)建成功,就是Spring Boot約定大于配置的一個體現(xiàn)。
因?yàn)槲覀冊谥暗脑?xiàng)目中,將bean交給Spring管理,需要在xml文件中配置掃描路徑,而在Spring Boot中,約定會掃描啟動類所在的路徑以及子路徑,比如下面這個例子:
?如果不在類掃描路徑下,那么就會報(bào)錯。
問題1:Spring Boot與Servlet項(xiàng)目的區(qū)別?
三、Sping Boot的配置文件(重點(diǎn))
Spring Boot的配置文件主要有兩個:.properties和.yml。
配置文件的格式:application.yml和application.properties(application的名字也不能修改)。
這兩個文件相當(dāng)于手機(jī)的老款(.properties)和新款(.yml)一樣,功能都是一樣的。如果在兩個文件都存在的時候,兩個都會生效;不過在兩者發(fā)生沖突的時候,以.properties為準(zhǔn)。(但加載完.properties文件后,也會加載.yml文件)。一般實(shí)際業(yè)務(wù)中,我們只選取一種即可。
??1、.properties配置文件
(1)基礎(chǔ)語法:Key = value
(2)讀取配置?件中的內(nèi)容,@Value 注解使?“${}”的格式讀??;
?執(zhí)行main方法結(jié)果:
?注意:如果再次打開IDEA,發(fā)現(xiàn).properties文件的中文注釋變?yōu)榱藖y碼:
亂碼是不可逆的,設(shè)置好編碼格式之后,重寫亂碼內(nèi)容,下次打開就好了。
(3)properties 缺點(diǎn)分析
properties 配置?件中會有很多的冗余的信息,?如這些:因此使用yml文件的格式化來解決。
??2、.yml配置文件
yml就是YAML,全稱 Yet Another Markup Language 翻譯成中?就是“另?種標(biāo)記語?”。
(1)基礎(chǔ)語法:key: value
注意:英文冒號后面有空格,空格不能省略。
(2)配置數(shù)據(jù)庫及基本數(shù)據(jù)類型:讀取@Value{“${ }”},與properties 相同。
#布爾值
boolean:
value: true
#boolean.value: true
#boolean.value1: false
#整數(shù)
int:
value: 10
#也可以寫這樣:一般這種用于只有一個值的寫法,一個Key多個值用上面的寫法 int.value: 10
#浮點(diǎn)數(shù)
float.value: 3.1415926
float.value1: 3.1415926-5 #科學(xué)計(jì)數(shù)法
#Null,~表示null
null.value: ~
?yml讀取上述配置:
@Component
public class Demo2_ReadYml {
//讀取.yml配置文件的內(nèi)容
//1、讀取數(shù)據(jù)庫名稱
@Value("${spring.datasource.username}")
private String d1;
//2、讀取boolean類型
@Value("${boolean.value}")
private boolean b1;
//3、讀取浮點(diǎn)類型
@Value("${float.value}")
private float f1;
//4、讀取整型
@Value("${int.value}")
private int i1;
@Value("${null.value}")
private String n1;
@PostConstruct
public void postConstruct(){
System.out.println(d1);
System.out.println(b1);
System.out.println(i1);
System.out.println(n1);
System.out.println(f1);
}
}
?(3)配置字符串并讀取:讀取@Value{“${ }”}
?
總結(jié):
- 字符串默認(rèn)不?加上單引號或者雙引號。
- 單引號會轉(zhuǎn)義特殊字符,特殊字符最終只是?個普通的字符串?dāng)?shù)據(jù)。
- 雙引號不會轉(zhuǎn)義字符串里面的特殊字符;特殊字符會作為本身想表示的意思。?
(4)配置對象并讀?。菏?注解@ConfigurationProperties 來讀取+@Autowired
補(bǔ)充:我們之前創(chuàng)建一個類的時候,屬性如果為私有的,要設(shè)置它的get和set方法。我們之前在創(chuàng)建項(xiàng)目的時候引入了lombok,所以可以使用它來更加簡潔的獲取get和set方法。(在類上加@Data注解)
Student類:注意這三個注解的作用
@ConfigurationProperties(prefix = "student")//進(jìn)行賦值
//@ConfigurationProperties("student")//可以省略
@Component//交給Spring管理
@Data //使用lumbook生成get和set方法
public class Student {
private String name;
private Integer age;
}
經(jīng)過編譯之后,我們在target下找到Student類,可以發(fā)現(xiàn),是我們正常方式寫的這種get與set方法的形式,說明我們這種引入lombok的形式是成功的。
?.yml配置文件:
調(diào)用類的方法:此時使用注解@Autowired
@Component
public class Demo3_ReadYmlObject {
@Autowired
private Student student;
@PostConstruct
public void postConstruct(){
System.out.println(student);
}
}
執(zhí)行結(jié)果
?注意不要弄混了。
(5)配置集合并讀取:和上面獲取對象的方式一致,在,yml文件中集合的形式是:-加空格后面寫具體內(nèi)容。
.yml配置文件
?Student類 :?
?調(diào)用類的方法:
執(zhí)行結(jié)果:
(6)配置map:與讀取集合的方式相同,只是.yml文件中map的配置格式是:隔開的。
?Student類:
?
執(zhí)行結(jié)果:
?總結(jié):
(1)配置數(shù)據(jù)庫,基本數(shù)據(jù)類型,字符串等:用@Value("${ }")讀取
(2)配置對象,集合,map:讀取的方式都是@ConfigurationProperties(prefix = "");
(注意看讀取集合中使用的各種注解,以及各種文件之間的對應(yīng)關(guān)系!)
總結(jié):.properties?與. yml文件的區(qū)別
- properties 是以 key=value 的形式配置,? yml 使?的是key 和 value 之間使?“: ”英?冒號加空格的?式設(shè)置,并且空格不可省略。
- properties 配置存在?定的冗余數(shù)據(jù),使? yml 可以很好的解決數(shù)據(jù)冗余的問題。
- yml 通?性更好,?持更多語?,如 Java、Go、Python 等;
- yml ?持更多的數(shù)據(jù)類型。
??3、補(bǔ)充:多平臺系統(tǒng)配置項(xiàng)
代碼演示:設(shè)置如下的yml文件
?主配置環(huán)境中設(shè)置走哪個環(huán)境
#1、配置數(shù)據(jù)庫
#spring:
# datasource:
# url: jdbc:mysql://127.0.0.1:3306/數(shù)據(jù)庫名?characterEncoding=utf8
# username: root
# password: root
#設(shè)置走哪個文件:dev還是test還是prod
spring:
profiles:
active: dev
?測試:能否獲取到dev平臺下的數(shù)據(jù)庫密碼
獲取正確。?
?
?總結(jié):設(shè)置不同環(huán)境的配置?件
(1)先寫各個環(huán)境的配置文件:格式是application-XXX.yml;
?(2)在主配置文件application.yml文件中設(shè)置環(huán)境參數(shù)
?
猜猜今日份心情~文章來源:http://www.zghlxwxcb.cn/news/detail-593936.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-593936.html
到了這里,關(guān)于【Spring Boot學(xué)習(xí)一】創(chuàng)建項(xiàng)目 && Spring Boot的配置文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!