1. 程式人生 > >springboot(1)——快速入門

springboot(1)——快速入門

《一》、快速入門

一、概述

springboot使用”習慣優於配置(專案中存在大量的配置,此外還內建一個習慣性的配置,讓你無須手動進行配置)”的理念讓你的專案快速執行起來, 可以不用或者只需要很少的spring配置很容易建立一個獨立執行(執行jar,內嵌Servlet容器)、準生產級別的基於spring框架的專案

二、核心功能

  • 1、獨立執行的spring專案

可以以jar包(java -jar xxx.jar)的形式獨立執行

  • 2、 內嵌Servlet容器

springboot可以內嵌Tomcat、Jetty等, 這樣無須以war包形式部署專案.

  • 3、提供starter簡化maven配置
  • 4、自動配置spring
  • 5、準生產的應用監控
  • 6、無程式碼生成和xml配置
  • 7、可以整合springcloud等微服務

三、快速搭建

  • 1、使用IDEA新建Spring Initializr專案

  • 2、測試Web模組
    新建HelloController類,內容如下

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String index() {
        return
"hello springboot"; } }

啟動主程式,開啟瀏覽器訪問http://localhost:8080/hello,可以看到頁面輸出hello springboot

四、響應客戶端渲染資料

封裝返回一個json物件

// 1、返回前端的VO類(ResultVO.java)
@Data // 同等於@Getter和@Setter
@Accessors(chain = true)
public class ResultVO<T> implements Serializable {
    /** 錯誤碼. */
    private Integer code;
    /** 提示資訊. */
private String msg; /** 具體內容. */ private T data; } // 2、封裝ResultVOUtil返回工具類 public class ResultVOUtil { public static ResultVO success(Object object) { ResultVO resultVO = new ResultVO(); resultVO.setData(object).setCode(0).setMsg("成功"); return resultVO; } public static ResultVO success() { return success(null); } public static ResultVO error(Integer code, String msg) { ResultVO resultVO = new ResultVO(); resultVO.setCode(code).setMsg(msg); return resultVO; } }

1、@RestController 同等於 @Controller + @ResponseBody

2、Java Bean類中@Data註解(相當於@Getter和@Setter註解;省略了get和set寫法), 需引入lombok

3、註解@Accessors(chain = true), 可以鏈式操作Java Bean類 需引入lombok

4、註解@DynamicUpdate更新資料操作時會自動更新資料庫中on update current_timestamp的時間欄位

`update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改時間'

五、表單驗證

  • 1、jackson基本演繹法(註解Java Bean物件中各欄位)

    • @JsonIgnore前端不顯示該欄位
    • @JsonInclude(Include.NON_NULL)該欄位為空時前端不顯示出來
    • @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss a", locale="zh", timezone="GMT+8")時間格式
  • 2、javabean設定驗證條件

@Data
@Entity
@Accessors(chain = true)
@Table(name = "girl")
public class GirlEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer girdId;

    @Min(value = 18, message = "未成年禁止進入")
    private String age;

    @NotEmpty(message = "姓名不能為空")
    private Integer name;
}
  • 3、controller中驗證
@PostMapping("/save")
public GirlEntity save(@Valid GirlEntity girlEntity,
                     BindingResult bindingResult) {
    if (bindingResult.hasErrors()) { // 驗證中有錯誤
        System.out.println(bindingResult.getFieldError().getDefaultMessage());
        return null;
    }
    // ...
    // ...
    return null;
}