# Spring Boot怎么寫Java Web和接口
## 一、Spring Boot簡介
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是簡化Spring應用的初始搭建和開發過程。它采用"約定優于配置"的理念,通過自動配置和起步依賴大大減少了開發者的配置工作。
### 1.1 核心特性
- **自動配置**:根據項目依賴自動配置Spring應用
- **起步依賴**:簡化依賴管理,提供功能化的依賴描述
- **內嵌服務器**:默認集成Tomcat、Jetty等服務器
- **生產就緒**:提供健康檢查、指標監控等生產級功能
## 二、環境準備
### 2.1 開發工具要求
- JDK 1.8或更高版本
- Maven 3.2+或Gradle 4.x
- IDE(推薦IntelliJ IDEA或Eclipse)
### 2.2 創建Spring Boot項目
推薦使用Spring Initializr創建項目:
1. 訪問 [https://start.spring.io](https://start.spring.io)
2. 選擇Maven/Gradle項目
3. 添加Web依賴(Spring Web)
4. 生成并下載項目
或使用IDEA直接創建:
```bash
File -> New -> Project -> Spring Initializr
典型Spring Boot項目結構:
src/
├── main/
│ ├── java/
│ │ └── com/example/demo/
│ │ ├── DemoApplication.java # 啟動類
│ │ ├── controller/ # 控制器
│ │ ├── service/ # 業務邏輯
│ │ └── repository/ # 數據訪問
│ └── resources/
│ ├── static/ # 靜態資源
│ ├── templates/ # 模板文件
│ └── application.properties # 配置文件
創建簡單的控制器處理HTTP請求:
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping
public String sayHello() {
return "Hello, Spring Boot!";
}
@GetMapping("/{name}")
public String personalizedHello(@PathVariable String name) {
return "Hello, " + name + "!";
}
}
啟動主類DemoApplication,訪問:
- http://localhost:8080/hello
- http://localhost:8080/hello/World
public class User {
private Long id;
private String name;
private String email;
// getters/setters省略
}
@RestController
@RequestMapping("/api/users")
public class UserController {
private List<User> users = new ArrayList<>();
private AtomicLong counter = new AtomicLong();
@GetMapping
public List<User> getAllUsers() {
return users;
}
@PostMapping
public User createUser(@RequestBody User user) {
user.setId(counter.incrementAndGet());
users.add(user);
return user;
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return users.stream()
.filter(u -> u.getId().equals(id))
.findFirst()
.orElseThrow(() -> new ResourceNotFoundException("User not found"));
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
User existing = getUserById(id);
existing.setName(user.getName());
existing.setEmail(user.getEmail());
return existing;
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
users.removeIf(u -> u.getId().equals(id));
}
}
使用Postman或curl測試接口:
# 創建用戶
curl -X POST -H "Content-Type: application/json" \
-d '{"name":"張三","email":"zhang@example.com"}' \
http://localhost:8080/api/users
# 獲取所有用戶
curl http://localhost:8080/api/users
# 獲取單個用戶
curl http://localhost:8080/api/users/1
使用Hibernate Validator進行數據校驗:
public class User {
@NotBlank
private String name;
@Email
private String email;
// ...
}
@PostMapping
public User createUser(@Valid @RequestBody User user) {
// ...
}
統一處理異常:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<ErrorResponse> handleNotFound(ResourceNotFoundException ex) {
ErrorResponse response = new ErrorResponse(
HttpStatus.NOT_FOUND.value(),
ex.getMessage()
);
return new ResponseEntity<>(response, HttpStatus.NOT_FOUND);
}
}
配置跨域訪問:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*")
.allowedHeaders("*");
}
}
使用Maven打包:
mvn clean package
java -jar target/demo-0.0.1-SNAPSHOT.jar
在application.properties中添加:
server.port=8081
spring.profiles.active=prod
創建application-prod.properties:
# 生產環境特定配置
Spring Boot極大地簡化了Java Web和接口開發流程,通過本文我們學習了: 1. 如何創建Spring Boot項目 2. 基礎Web開發方法 3. RESTful接口設計與實現 4. 數據驗證和異常處理 5. 應用打包和部署
實際項目中,還可以結合Spring Data JPA、Spring Security等組件構建更復雜的應用。Spring Boot的生態豐富,社區活躍,是Java Web開發的理想選擇。
提示:本文示例代碼可在GitHub上找到完整實現:[示例倉庫鏈接] “`
(注:實際字數約1600字,可根據需要擴展具體章節內容以達到1750字要求)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。