> 文章列表 > 《Spring Boot 趣味实战课》读书笔记(二)

《Spring Boot 趣味实战课》读书笔记(二)

《Spring Boot 趣味实战课》读书笔记(二)

牛刀小试——五分钟入门 Spring Boot

万物皆可 Hello World

创建一个 Web 工程

  • 填写项目信息
    《Spring Boot 趣味实战课》读书笔记(二)
  • 选择依赖
    《Spring Boot 趣味实战课》读书笔记(二)
  • 从 IDEA 打开下载好的 Spring Boot 工程:
    《Spring Boot 趣味实战课》读书笔记(二)

完成核心代码

  • 创建 HelloController 类并编写 hello 方法
    • 创建一个 HelloController 类,或者选择 File→New→Java Class 菜单命令来创建。
    • 在 HelloController 类中添加一个 hello 方法:
      @RestController
      public class HelloController {@GetMapping("/hello")public String hello() {return "Hello Spring Boot";}
      }
      

运行并查看效果

  • 经过以上步骤,我们的第一个 Spring Boot 程序就全部完成了。
  • 接下来需要验证一下这个程序是否可以正常运行。
  • 项目启动成功后,可以在 Intellij IDEA 的控制台看到如下日志:
    《Spring Boot 趣味实战课》读书笔记(二)
  • 接下来在浏览器中访问 http://localhost:8080/hello:
    《Spring Boot 趣味实战课》读书笔记(二)

Spring Boot 的工程结构

结构详解

  • Spring Boot 之所以使用 Maven 的工程结构,是因为它们都遵循“约定优于配置”的设计哲学。
    《Spring Boot 趣味实战课》读书笔记(二)
    • 工程根目录由 4 部分组成:
      • target(目录)
        • 使用 Maven 打包后会将编译后的 .class 文件和依赖的 Jar 包,以及一些资源文件放到这个目录下。
      • gitignore(文件)
        • gitignore 文件用来配置那些不需要 Git 帮助我们进行版本控制的文件或目录,例如,Intellij IDEA 产生的配置文件或者本地开发使用的 application-local.yml 文件等。
      • pom.xml(文件)
        • pom.xml 文件用来配置依赖的 Jar 包,帮助我们进行 Jar 包管理。我们会经常跟它打交道。
      • src(目录)
        • src 目录用来存放所有我们编写的 Java 源码文件、程序配置文件、资源文件等,是开发需要用到的主目录。

结构分类

  • 功能目录
    • target、gitignore 和 pom.xml 都是偏工具属性的,主要是给 Maven、Git 用的,与开发人员的关系没有那么紧密。
    • 我们可以将其称为功能目录(文件)。
  • 业务目录
    • 真正跟开发人员息息相关的是 src 目录下的内容。
    • 我们可以清晰地看到,src 目录有两个分支——main和test。
      • main 用来存放业务逻辑主代码,而 test 则用来存放测试代码。
      • 理论上讲,main 中的每一个 Java 类(POJO 类除外)在 test 中都有一个测试类,可以理解成 main 中的每个类都有一个“贴身侍卫”,用来护其周全。
    • 再往下看,又分为 dao、service、controller 等目录,这体现了软件开发中最基本的分层思想,对应着数据层业务逻辑层Web 控制层

珍爱生命,我用 Starters

什么是 Starters

  • Starters 是一组方便的依赖描述。
    • 你可以将其添加到你的应用中,将会得到 Spring 及相关技术的一站式服务,使你不必再将那些样板代码进行反复的复制、粘贴操作。
    • Starters 其实就是将一组具有相关性的 Jar 包做了一个整合。
    • 不同的 Starters 对应不同的功能。
      • spring-boot-starter-web 用于 Web 工程;
      • spring-boot-starter-test 用于单元测试;
      • spring-boot-starter-mail 用于邮件服务;
      • spring-boot-starter-data-redis 用于 Redis。
  • Starters 按照功能把相关的依赖整合起来,不需要开发者自己手动添加,大大提高了开发效率。
    • 从程序运行机制来说,使用 Starters 和自己手动添加 Jar 包依赖并没有任何不同。
    • Spring 将这些基础设施整合好,让用户可以直接拿过来用,从而专注于自己的需求,这样才是好的产品。

值得拥有的 YAML

  • YAML(YAML Ain’t Markup Language)是专门用来编写配置文件的,其设计宗旨是方便人类阅读与书写。
    • Properties 用来编写配置文件已经非常简单了,但是它有一个缺点,就是结构不够清晰,不能体现配置项的相关性和层次。
    • YAML 相较于其他配置文件的常用格式(如 XML、Properties、JSON 等),它的结构更加简洁与清晰。
  • Spring Boot 默认使用 Properties 作为配置文件格式,需要手动将 application.properties 重命名为 application.yml。

YAML 语法

  • 基本规则
    • 大小写敏感;
    • 使用空格缩进表示层级关系;
    • 对缩进的空格数目没有要求,只要同级元素左侧对齐即可;
    • 使用#注释,只有行注释,没有块注释;
    • key 与 value 用英文冒号加上空格来分割。
  • 基本组件
    • 对象(映射/字典);
    • 数组(列表)。
  • 数据类型
    • 字符串;
    • 布尔值;
    • 数值(整型、浮点);
    • null;
    • 日期/时间(Date、Time)。