《一》、快速入门
一、概述
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;
}