SpringBoot是一个脚手架,用于快速搭建一个基于Spring的web应用,开箱即用!创建即可开发业务代码。其设计目的是用来简化 Spring 应用的初始搭建以及开发过程
1、Controller 层
java
package com.example.demo2.controller;
import com.example.demo2.pojo.Dto.UserDto;
import com.example.demo2.pojo.ResponseMessage;
import com.example.demo2.pojo.User;
import com.example.demo2.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@RestController //接口返回对象 转换成Json文本
@RequestMapping("/user") //localhost:8088/user/**
public class UserController {
@Autowired
IUserService userService;
@PostMapping("Add")
public ResponseMessage Add(@Validated @RequestBody UserDto user){
User userPojo=userService.Add(user);
return ResponseMessage.success(userPojo);
}
@GetMapping("/{userId}")
public ResponseMessage Get(@PathVariable Integer userId){
User userPojo= userService.GetUser(userId);
return ResponseMessage.success(userPojo);
}
@PutMapping("Eidt")
public ResponseMessage Eidt(@Validated @RequestBody UserDto user){
User userPojo=userService.Eidt(user);
return ResponseMessage.success(userPojo);
}
@DeleteMapping("/{userId}")
public ResponseMessage Delete(@PathVariable Integer userId){
userService.Delete(userId);
return ResponseMessage.success();
}
}
Service层
java
package com.example.demo2.controller;
import com.example.demo2.pojo.Dto.UserDto;
import com.example.demo2.pojo.ResponseMessage;
import com.example.demo2.pojo.User;
import com.example.demo2.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@RestController //接口返回对象 转换成Json文本
@RequestMapping("/user") //localhost:8088/user/**
public class UserController {
@Autowired
IUserService userService;
@PostMapping("Add")
public ResponseMessage Add(@Validated @RequestBody UserDto user){
User userPojo=userService.Add(user);
return ResponseMessage.success(userPojo);
}
@GetMapping("/{userId}")
public ResponseMessage Get(@PathVariable Integer userId){
User userPojo= userService.GetUser(userId);
return ResponseMessage.success(userPojo);
}
@PutMapping("Eidt")
public ResponseMessage Eidt(@Validated @RequestBody UserDto user){
User userPojo=userService.Eidt(user);
return ResponseMessage.success(userPojo);
}
@DeleteMapping("/{userId}")
public ResponseMessage Delete(@PathVariable Integer userId){
userService.Delete(userId);
return ResponseMessage.success();
}
}
IUserService 接口定义
java
package com.example.demo2.service;
import com.example.demo2.pojo.Dto.UserDto;
import com.example.demo2.pojo.User;
public interface IUserService {
User Add(UserDto user);
User GetUser(Integer userId);
User Eidt(UserDto user);
void Delete(Integer userId);
}
Repository数据库访问层
java
package com.example.demo2.repository;
import com.example.demo2.pojo.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository //spring bean
public interface IUserRepository extends CrudRepository<User, Integer> {
}
model层
java
package com.example.demo2.Model;
import jakarta.persistence.*;
@Table(name = "tb_user")
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_Id")
private Integer userId;
private String userName;
private String passWord;
private String email;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"userName='" + userName + '\'' +
", userId=" + userId +
", passWord='" + passWord + '\'' +
", email='" + email + '\'' +
'}';
}
}
Dto 用于model数据转换
java
package com.example.demo2.Model.Dto;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;
public class UserDto {
private Integer userId;
@NotBlank(message = "用户名不能为空")
private String userName;
@NotBlank(message = "密码不能为空")
@Length(min=6, max=12)
private String passWord;
@Email(message ="email格式不正确")
private String email;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "UserDto{" +
"userId=" + userId +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
", email='" + email + '\'' +
'}';
}
}
定义一个ResponseMessage用于接口统一格式响应
java
package com.example.demo2.Model;
import org.springframework.http.HttpStatus;
public class ResponseMessage<T>{
private int code;
private String message;
private T data;
public ResponseMessage(int code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public static <T>ResponseMessage<T> success(T data) {
return new ResponseMessage<T>(HttpStatus.OK.value(), "success", data);
}
public static <T>ResponseMessage<T> success() {
return new ResponseMessage<T>(HttpStatus.OK.value(), "success", null);
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
定义一个类GlobalExceptionHanderAdvice用于异常统一处理
java
package com.example.demo2.execption;
import com.example.demo2.Model.ResponseMessage;
import jakarta.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice //统一处理异常
public class GlobalExceptionHanderAdvice {
Logger log= LoggerFactory.getLogger(GlobalExceptionHanderAdvice.class);
@ExceptionHandler({Exception.class}) //什么异常的统一处理
public ResponseMessage handleException(Exception e, HttpServletRequest request){
log.error("统一异常",e);
return new ResponseMessage<>(500,"error",null);
}
}
配置swagger文档 ,在pom.xml中 添加依赖, 需要注意和你的spring boot 版本
XML
<!-- Springdoc OpenAPI -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>3.0.0</version> <!-- 确认与Spring Boot 4.0.2兼容 -->
</dependency>
swagger访问地址 :localhost:8088/swagger-ui/index.html 效果图
