SpringBoot介紹:
1.為什么需要SpringBoot?
SpringBoot是一個基於Spring的框架,其設計目的是用來簡化Spring應用的初始搭建以及開發過程。
大家可以想一想,在SpringBoot出現之前,在進行開發時,是不是進行了大量的配置文件?是不是導入了
大量的maven依賴?你是不是非常討厭這些復雜的配置文件和大量的maven依賴呢?
沒錯,SpringBoot解決了傳統Spring開發過程中出現的以下問題,大大簡化了開發過程:
1.配置文件太多,太復雜;
2.jar包太多,版本不好統一管理;
3.發布系統需要安裝Tomcat或配置插件;
2.SpringBoot的入門
1.入門需求:
使用springboot在頁面中展示一個hello world ;
2.入門步驟:
2.1 創建工程,添加父工程parent;
<!--添加父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
2.2 添加起步依賴;
<dependencies>
<!--添加起步依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2.3 創建啟動類;
package com.it;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* ToDo
*
* @author Lyle
* @date 2020/3/31
*/
@SpringBootApplication
public class SpringBootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class);
}
}
2.4 創建Controller
package com.it.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* ToDo
*
* @author Lyle
* @date 2020/3/31
*/
@RestController
public class TestController {
@RequestMapping("/hello")
public String showHello(){
return "hello world";
}
}
入門說明:
父工程springboot parent鎖定版本,自動配置與之匹配的jar包版本;
springboot內嵌了Tomcat,默認端口號8080,只需導入spring-boot-starter-web的起步依賴即可;
3. springboot的配置文件:
application.properties
application.yml或者application.yaml
推薦使用application.yml;
"#"號表示注釋
# 配置端口號,注意port:和8081之間要有空格
server:
port: 8081
#簡單的key=value形式
name: zhangsan
#數組形式,使用 - 來區分不同的元素, 元素可以是基本類型,字符串和對象類型
cities:
- beijing
- shenzhen
- changsha
#集合類型,元素是復雜的數據類型,eg:List<Student> students;
students:
- name: zhangsan
age: 18
address: beijing
- name: lisi
age: 20
address: shenzhen
- name: ww
age: 30
address: changsha
# Map集合形式,使用比較少
maps: {"name": "zhangsan","age": "18"}
#參數引用
person:
name: ${name} # 該值可以獲取到上邊的name定義的值:zhangsan
age: 12
4. 獲取配置文件中的值
1. @Value形式獲取簡單值:
4.1 獲取簡單的key=value形式
@Value("${name}")
private String name;
4.2 根據索引獲取數組中的值
@Value("${cities[1]}")
private String city1;
4.3 獲取集合中第一個元素中屬性的值
@Value("${students[0].address}")
private String address;
4.4 獲取Map中的值
@Value("{maps.name}")
private String mapsname;
4.5 獲取person中name的值
@Value("${person.name}")
private String personname;
2. 使用spring中的Environment獲取值:
在類中注入Environment對象:
@Autowired
private Environment environment;
使用Environment中的getProperty()方法;
3. @ConfigurationProperties方式獲取值:
創建POJO,並使用注解@Component將pojo交給spring來管理;
使用注解@ConfigurationProperties來建立pojo和配置文件的映射;
在類中注入POJO,通過pojo的get方法來獲取對應的值。