一、快速入門
SpringBoot可以讓你更快速地搭建Web應用,它為開發者提供了許多使用時省去了很多配置代碼的便利。在這裡,我們將通過一個簡單的示例來介紹如何使用SpringBoot。
首先,我們需要創建一個新的SpringBoot項目。可以使用Spring官方提供的工具Spring Initializr來創建新項目,也可以使用你喜歡的IDE(如:IntelliJ IDEA)來手動創建。在這裡,我們使用Spring Initializr來創建新項目。打開官方網站(https://start.spring.io/)選擇項目的基本配置,填寫完後選擇下載。
下載完成後可以在壓縮包中看到生成的項目。我們用IDEA打開,然後找到Application這個入口類。這個類中已經包含了一個啟動SpringBoot的方法main()。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
上述代碼中,@SpringBootApplication是一個註解,它包含了其他幾個註解,可以使得SpringBoot應用的配置變得很簡單,也可以想運行一個標準的Spring應用一樣運行。
接下來,我們創建一個Controller,定義向請求響應“hello world”的邏輯。
@RestController
public class HelloWorldController {
@RequestMapping("/")
public String hello() {
return "Hello World!";
}
}
在上述代碼中,我們使用了@RestController註解來定義這是一個控制器,使用@RequestMapping來將請求與方法進行綁定。訪問“/”時就會響應“Hello World!”。
最後,啟動SpringBoot應用。在IDE中可以直接運行Application這個類的main()方法啟動,也可以使用命令行運行mvn spring-boot:run。啟動成功後,訪問http://localhost:8080/就能看到“Hello World!”。
二、使用配置文件
SpringBoot提供了一個全局的配置文件application.properties,用來配置各種屬性。在這個配置文件中,你可以配置SpringBoot的自動配置、日誌、數據源等等。下面,我們將介紹如何創建和使用這個配置文件。
首先,在src/main/resources/文件夾下創建application.properties文件。在這個文件中,你可以定義多個鍵值對,每個鍵值對代表一個屬性,如下所示:
server.port=8088
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
上述代碼中,我們配置了服務端口號為8088,以及MySql數據庫的連接信息。
接下來,在代碼中使用@Value註解來讀取配置文件中的屬性值:
@RestController
public class ConfigController {
@Value("${server.port}")
private Integer port;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@RequestMapping("/config")
public Map getConfig() {
Map config = new HashMap();
config.put("port", port.toString());
config.put("url", url);
config.put("username", username);
config.put("password", password);
return config;
}
}
我們使用@Value註解來注入屬性值,然後將這幾個屬性值封裝在Map中進行返回。
啟動SpringBoot應用後,訪問http://localhost:8080/config就能夠看到指定的屬性值了。
三、使用RESTful接口
RESTful是一種Web服務的軟件架構風格,它關注於建立一套適合各種設備和平台之間通信的標準接口。SpringBoot完全支持RESTful接口,提供了多種方式來創建Web服務。下面,我們將詳細介紹如何使用SpringBoot創建RESTful接口。
首先,我們需要添加依賴,在pom.xml文件中添加如下代碼:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
上述代碼中,我們添加了spring-boot-starter-web這個依賴,它包含了使用SpringBoot創建Web應用的必要組件。
接下來,我們創建一個Controller類,定義RESTful接口:
@RestController
@RequestMapping("/users")
public class UserController {
private static List userList = new ArrayList();
static {
userList.add(new User(1L, "John"));
userList.add(new User(2L, "Amy"));
userList.add(new User(3L, "Mike"));
}
@GetMapping("/")
public List list() {
return userList;
}
@PostMapping("/")
public User create(@RequestBody User user) {
user.setId(System.currentTimeMillis());
userList.add(user);
return user;
}
@GetMapping("/{id}")
public User get(@PathVariable("id") Long id) {
for(User user : userList) {
if(user.getId() == id) {
return user;
}
}
return null;
}
@PutMapping("/{id}")
public User update(@PathVariable("id") Long id, @RequestBody User user) {
for(User u : userList) {
if(u.getId() == id) {
u.setName(user.getName());
return u;
}
}
return null;
}
@DeleteMapping("/{id}")
public boolean delete(@PathVariable("id") Long id) {
for(User u : userList) {
if(u.getId() == id) {
userList.remove(u);
return true;
}
}
return false;
}
}
在上述代碼中,我們通過@RequestMapping聲明處理請求的路徑,並在具體方法上使用@GetMapping、@PostMapping、@PutMapping、@DeleteMapping等註解來定義HTTP請求的類型。
啟動SpringBoot應用,然後就可以使用各種HTTP客戶端發送RESTful請求。如,使用curl命令來測試:
curl -X POST -H "Content-Type: application/json" -d '{"name":"Lucy"}' http://localhost:8080/users/
curl http://localhost:8080/users/
curl http://localhost:8080/users/1
curl -X PUT -H "Content-Type: application/json" -d '{"name":"Tom"}' http://localhost:8080/users/1
curl -X DELETE http://localhost:8080/users/1
上述代碼是創建、查詢、更新、刪除用戶幾個請求的示例,你可以自己使用瀏覽器或其他的HTTP客戶端進行測試。
原創文章,作者:UAHFM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/372424.html