《SpringBoot框架开发技术整合》笔记

前言

    笔者近期在慕课网上学习了《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资源文件属性

    一. 资源文件中的属性配置与映射到实体类

猜你喜欢

转载自blog.csdn.net/weixin_33656548/article/details/83548157