SpringBoot的目錄結構
/src/main | 項目根目錄 |
---|---|
/java | java源代碼 |
/resources | 資源目錄 |
/resources/static | 靜態(tài)資源目錄 |
/resources/templates | 表示層頁面目錄 |
/resources/application.properties | SpringBoot配置文件 |
/test | 測試文件目錄 |
使用Maven創(chuàng)建SpringBoot項目
- 點擊IDEA
create new project
選擇Maven 直接點擊下一步
- 設置
GroupId
和ArtifactId
, 再點擊next
, 再點擊Finish
項目創(chuàng)建完成
- 在
resource
里創(chuàng)建static
文件,templates
文件夾和application.properties
- 添加
SpringBoot
的依賴, 在pom.xml里添加如下配置- 第一種
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.14.RELEASE</version> <configuration> <!--設置項目的入口--> <mainClass>com.rui.springboot.MySpringBootAppliacation</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.5.14.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.14.RELEASE</version> </dependency> </dependencies>
- 第二種(注: 如果出現(xiàn)
SpringBoot
依賴的jar包下載不下來的情況, 請使用第一種)
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.14.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-booot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 添加項目入口, 項目目錄結構的
MySpringBootApplication
, 添加@SpringBootApplication
注解以后, 點擊右鍵run
即可運行項目
// 說明這是一個SpringBoot的入口類
@SpringBootApplication
public class MySpringBootAppliacation {
public static void main(String[] args) {
SpringApplication.run(MySpringBootAppliacation.class);
}
}
-
項目運行成功
使用Spring Initializr構建Spring Boot應用
- 創(chuàng)建新項目選擇
Spring Initializr
,JDK
選擇1.8, 選擇Default URL
- 點擊
next
, 輸入Group
和Artifact
- 左側(cè)選擇
web
, 右側(cè)勾選Spring web
, 點擊next
-
輸入項目名, 選擇項目路徑, 點擊Finish完成創(chuàng)建
-
會自動生成resource里的文件目錄, pom.xml里的配置, 以及項目入口類, 不需要手動設置配置
SpringBoot啟動流程與常用配置
-
SpringBoot的入口類
- 入口類命名通常以
*Application
結尾 - 入口類上增加
@SpringBootApplication
注解 - 利用
SpringApplication.run()
方法啟動應用
- 入口類命名通常以
-
SpringBoot啟動流程
-
SpringBoot中的常用配置
配置名稱 默認值 描述 server.port
8080
端口號 server.servlet.context-path
/ 設置上下文 logging.file
無 日志輸出路徑 logging.level
info
最低日志輸出級別 debug
false
開啟/關閉調(diào)試模式 spring.datasource.*
與數(shù)據(jù)庫相關的設置 application.properties
中寫入配置# 端口號 server.port=80 # 上下文 server.servlet.context-path=/myspringboot # 日志 logging.file=e:/myspringboot.log # 提高日志的輸出級別 debug/info/warn/error/fatal(災難級別, 服務器宕機) logging.level.root=error # debug 是否啟動調(diào)試模式 debug=false # spring.datasource.* 設置數(shù)據(jù)源. 設置jdbc的相關參數(shù) ## 設置JDBC的啟動類 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ## 設置數(shù)據(jù)庫的url spring.datasource.url=jdbc:mysql://localhost:3306/test ## 設置數(shù)據(jù)庫的賬號 spring.datasource.username=root ## 設置數(shù)據(jù)庫的密碼 spring.datasource.password=111111
SpringBoot配置文件
在日常開發(fā)中, 如果將配置都寫在application.properties
中, 太過于死板, 不利于運維修改配置信息
- 在SpringBoot中支持兩種配置文件
- 屬性文件:
application.properties
-
YAML
格式:application.yml
- 屬性文件:
- YAML語法簡介
- YAML是一種簡潔的非標記語言, YAML以數(shù)據(jù)為中心, 使用空白, 縮進, 分行組織數(shù)據(jù), 從而使得表示更加簡潔易讀.
- YAML語法格式
- 標準格式:
key:(空格)value
- 使用刻個代表層級關系, 以
:
結束
- 標準格式:
- 在
resources
下創(chuàng)建application.yml
文件, 即可實現(xiàn)和以上同樣的配置debug: false # 在1.5.x的版本里logging #logging: # level: info # file: ./e/ logging: level: root: info file: ./e/ spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test username: root password: root
- 自定義配置項
SpringBoot允許我們自定義應用配置項, 在程序運行時允許動態(tài)加載, 這為程序提供了良好的可維護性
在實際的項目開發(fā)中, 我們通常將項目的自定義信息放在配置文件中.
配置讀取debug: false logging: level: root: info file: ./e/ spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test username: root password: root # 自定義配置 course: config: name: 李四 age: 14 isStudent: true
@Controller public class MyController { @Value("${course.config.name}") private String name; @Value("${course.config.age}") private Integer age; @Value("${course.config.isStudent}") private Boolean isStudent; }
- 環(huán)境配置文件
-
SpringBoot
可針對不同的環(huán)境提供不同的Profile
文件 -
Profile
文件的默認命名格式為application-{env}.yml
- 使用
spring.profiles.active
選項來指定不同的profile
- 在
resources
下創(chuàng)建三個yml文件, 名字格式固定
-
application-dev.yml
為測試環(huán)境的配置文件
debug: false logging: level: root: info file: ./e/ spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test username: root password: root course: config: name: 李四 age: 14 isStudent: true
-
application-prd.yml
為正式環(huán)境的配置文件
debug: false logging: level: root: info file: ./e/ spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://11.11.11:3306/test username: root password: root course: config: name: 張三 age: 14 isStudent: true server: port: 80
- 項目的配置文件
application.yml
spring: profiles: active: prd # prd=>正式環(huán)境. dev=>測試環(huán)境, 改變active的值, 即可切換配置文件
-
打包與運行
- 利用
Maven
的package
命令, 生成可獨立運行的jar
包
運行即可生成jar
包 - 利用
java -jar xxx.jar
命令啟動Spring Boot
應用- 進入jar包所在的文件內(nèi), 執(zhí)行
jar -jar myspringboot-0.0.1-SNAPSHOT.jar
即可啟動
- 進入jar包所在的文件內(nèi), 執(zhí)行
-
jar
包可自動加載同目錄下的application
配置文件- 如果已經(jīng)啟動還想切換環(huán)境, 將
resources
下的yml
文件復制到和jar
包同目錄下,Spring Boot
會優(yōu)先加載同級目錄下的yml
文件, 切換完畢以后, 再次執(zhí)行jar -jar myspringboot-0.0.1-SNAPSHOT.jar
.
- 如果已經(jīng)啟動還想切換環(huán)境, 將