springboot(1)——快速入門
阿新 • • 發佈:2018-11-01
《一》、快速入門
一、概述
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;
}