前言
笔者近期在慕课网上学习了《Springboot框架开发技术整合》一系列课程,收益颇丰,于是结合笔记写下此文以作总结归纳。如有不当之处,敬请评论指出,笔者虚心接受。
构建简单WEB项目
有两种方法可以快速构建SpringBoot项目。
一. 通过SpringBoot官网的QuickStart构建一个项目。快速构建SpringBoot项目
二. 使用Spring官方的Spring Tool Suite搭建SpringBoot项目。因为大多数开发者用的是idea和eclipse,这里就不作阐述,有兴趣的可以自行了解。
SpringBoot接口返回Json
一. SpringBoot构造并返回一个json对象
@RestController
public class UserController {
@RequestMapping("user")
public User getUser() {
User user = new User();
user.setAddress("深圳");
user.setAge(18);
user.setUserName("老王");
return user;
}
}
二. Jackson的基本演绎法
类注解:
- @JsonIgnoreProperties({“id”, “created”, “steps”, “copy”, “stepList”})
指定序列化时忽略这些属性,可用于覆盖父类的属性
属性注解:
- @JsonInclude(Include.NON_EMPTY)
当该属性为空时,不序列化 - @JsonIgnore
忽略该属性 - @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)
格式化时间戳,其中GMT+8指东八区
SpringBoot热部署
只需要要引入一个starter就可以实现热部署。
<!-- 热部署 -->
<!-- devtools可以实现页面热部署(即页面修改后会立即生效,
这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现) -->
<!-- 实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 -->
<!-- 即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),
注意:因为其采用的虚拟机机制,该项重启是很快的 -->
<!-- (1)base classloader (Base类加载器):加载不改变的Class,例如:第三方提供的jar包。 -->
<!-- (2)restart classloader(Restart类加载器):加载正在开发的Class。 -->
<!-- 为什么重启很快,因为重启的时候只是加载了在开发的Class,没有重新加载第三方的jar包。 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true, 依赖不会传递, 该项目依赖devtools;
之后依赖boot项目的项目如果想要使用devtools, 需要重新引入 -->
<optional>true</optional>
</dependency>
需要注意的是,IDEA中改完代码需要Build Project(CTRL+F9)后才会进行热部署。
笔者认为,相对于IDEA的DEBUG模式,这种热部署方式显得有些笨拙。大多数场景是修改业务代码,使用DEBUG模式重构完项目就可以立即生效,而devtools会重启整个项目,用时更多。如果在项目构建初期,需要频繁地修改配置、注解、依赖的时候(DEBUG模式对这些的修改不能即时生效),可以使用devtools进行热部署,缩短项目重启时间。
SpringBoot资源文件属性
一. 资源文件中的属性配置与映射到实体类