SpringBoot筆記

MaximeSHE發表於2024-09-27

類的封裝

類的封裝

//使用註解自動生成Setter、Getter、toString、無參建構函式、全參建構函式
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {
    private Integer id; //ID
    private String username; //使用者名稱
    private String password; //密碼
    private String name; //姓名
    private Short gender; //性別 , 1 男, 2 女
    private String image; //影像url
    private Short job; //職位 , 1 班主任 , 2 講師 , 3 學工主管 , 4 教研主管 , 5 諮詢師
    private LocalDate entrydate; //入職日期
    private Integer deptId; //部門ID
    private LocalDateTime createTime; //建立時間
    private LocalDateTime updateTime; //修改時間
}

返回結果的封裝

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
    private Integer code;//響應碼,1 代表成功; 0 代表失敗
    private String msg;  //響應資訊 描述字串
    private Object data; //返回的資料
    //成功響應
    public static Result success() {
        return new Result(1, "success", null);
    }

    public static Result success(Object data) {
        return new Result(1, "success", data);
    }
    //失敗響應
    public static Result error(String msg) {
        return new Result(0, msg, null);
    }
}

Controller

請求引數相關

// controller/HelloController.java
// 注意函式和類的註解
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        System.out.println("Hello World~");
        return "Hello World~";
    }
}

簡單請求引數

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name", required = false) String username, Integer age) {
    System.out.println(username + ": " + age);
    return "OK";
}

實體請求引數

需要先定義一個類,類中的屬性名與請求引數中的鍵名相同,類需要生成getter, setter方法和toString()方法(用於輸出除錯)

@RequestMapping("/simplePojo")
public String simplePojo(User user) {
    System.out.println(user);
    return "OK";
}

請求URL地址:http://localhost:8080/simplePojo?name=Tom&age=22

複雜實體請求引數

@RequestMapping("/complexPojo")
public String complexPojo(User user) {
    System.out.println(user);
    return "OK";
}

請求URL地址:http://localhost:8080/complexPojo?name=Tom&age=22&address.province=Shanghai&address.city=Shanghai

陣列請求引數

傳遞陣列引數時就是把同一個鍵傳入多次值

@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby) {
    System.out.println(Arrays.toString(hobby));
    return "OK";
}

請求URL地址:http://localhost:8080/arrayParam?hobby=Reading&hobby=Sports

日期時間型別

傳遞日期時間引數時需要設定時間的格式,新增@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime) { //注意:需要在變數前新增@RequestParam
    System.out.println(updateTime);
    return "OK";
}

請求URL地址:http://localhost:8080/dateParam?updateTime=2024-08-20 19:56:00

業務邏輯相關

  • controller(接收請求,響應資料)
  • service(業務邏輯處理)
  • dao(資料訪問操作)

分層解耦

IOC(控制反轉)和DI(依賴注入)

宣告bean的註解有:

IOC容器

透過給類新增註解來將類的例項物件轉入IOC容器,然後在呼叫處進行注入

@Component(子類,用於工具類), @Controller(用在Controller上), @Service(用在Service上), @Repository(用在Dao上)

相關文章