> 技术文档 > SpringBoot学习路径--SpringBoot的简单介绍和项目搭建

SpringBoot学习路径--SpringBoot的简单介绍和项目搭建


        在 Java 开发领域,Spring 框架无疑是一座举足轻重的里程碑。而 Spring Boot 的出现,更是让 Java 开发变得前所未有的简单高效。本文将带你全面了解 Spring Boot,从基础概念到实战操作,助你快速上手这一强大的开发框架。

一、Spring Boot 是什么?

Spring Boot 是简化 Spring 应用开发的框架,它就像一个功能强大的脚手架,整合了整个 Spring 技术栈,为 J2EE 开发提供了一站式解决方案。

它的优点不胜枚举:

  • 能快速创建独立运行的 Spring 项目,且可与主流框架轻松集成
  • 使用嵌入式的 Servlet 容器,应用无需打成 war 包,比如内嵌的 Tomcat,极大简化了部署流程
  • 提供 Starters 自动依赖和版本控制,不用再为依赖版本冲突头疼
  • 大量的自动装配功能简化开发,同时也支持修改默认值
  • 无需配置 XML,无代码生成,真正实现开箱即用
  • 具备准生产环境的运行时应用监控能力
  • 与云计算天然集成,适应现代部署需求

二、微服务与 Spring Boot

在了解 Spring Boot 的同时,我们不得不提微服务架构,因为 Spring Boot 是构建微服务的理想选择。

微服务的概念

微服务是一种架构风格,它将应用拆分成一个个小型的、具有独立业务功能的服务。每个服务都有自己的处理和轻量通讯机制,可部署在单个或多个服务器上,是一种松耦合、有界上下文的面向服务架构。

一个应用由一组小型服务组成,服务之间通过 HTTP 方式互通。这与单体应用(ALL IN ONE)形成鲜明对比,在微服务架构中,每一个功能元素都是可独立替换和独立升级的软件单元。

微服务的优缺点

优点

  • 每个微服务聚焦特定业务功能,规模小而精
  • 可由 2 到 5 人的小团队单独开发
  • 松耦合,在开发和部署阶段都保持独立
  • 支持使用不同语言开发
  • 易于集成自动部署,新成员能更快投入生产
  • 便于开发人员理解、修改和维护
  • 可根据需求灵活扩展
  • 能部署在中低端配置的服务上
  • 易于和第三方集成
  • 每个微服务可拥有自己的存储,也可使用统一数据库

缺点

  • 可能带来过多的操作成本
  • 开发工作量可能加倍
  • 分布式系统管理复杂
  • 服务量增加后,问题跟踪和管理难度上升

三、环境准备

要开始使用 Spring Boot,需准备以下环境:

  • JDK 1.8 及以上(Spring Boot 推荐 jdk1.7 及以上)
  • Maven 3.3 及以上版本
  • 开发工具:IntelliJ IDEA 2017 及以上、STS 等
  • Spring Boot 2.0.2.RELEASE(统一环境,基于 Spring5)

Maven 设置

在 maven 的 settings.xml 配置文件的 profiles 标签中添加如下内容:

 jdk‐1.8  true 1.8   1.8 1.8 1.8 

IDEA 设置

在 IDEA 中,需正确配置 Maven 路径、用户设置文件和本地仓库等信息,确保开发环境与 Maven 配置一致。

四、Spring Boot HelloWorld 实战

接下来,我们通过一个简单的 HelloWorld 案例,感受 Spring Boot 的魅力。

步骤 1:创建 Maven 工程(jar 类型)

步骤 2:导入 Spring Boot 相关依赖

在 pom.xml 中添加:

 org.springframework.boot spring‐boot‐starter‐parent 1.5.9.RELEASE  org.springframework.boot spring‐boot‐starter‐web 

步骤 3:编写主程序,启动 Spring Boot 应用

步骤 4:编写 Controller

@Controllerpublic class HelloController { @ResponseBody @RequestMapping(\"/hello\") public String hello(){ return \"Hello World!\"; }}

步骤 5:运行主程序测试

运行主程序后,在浏览器中访问http://localhost:8080/hello,即可看到 \"Hello World!\" 的响应。

步骤 6:简化部署

在 pom.xml 中添加插件:

   org.springframework.boot spring‐boot‐maven‐plugin  

将应用打成 jar 包后,可直接使用java -jar命令执行。

五、配置文件详解

Spring Boot 的配置文件是其灵活性的重要体现,下面我们深入了解。

热部署

Spring 提供了 spring-boot-devtools 模块支持热部署,引入依赖即可:

 org.springframework.boot spring-boot-devtools true

修改代码或配置文件后,按 ctrl+f9 即可实现热部署。

配置文件类型

Spring Boot 使用全局配置文件,文件名固定为:

  • application.properties
  • application.yml

配置文件的作用是修改 Spring Boot 自动配置的默认值。

YAML 以数据为中心,比 json、xml 更适合做配置文件。例如配置端口:

server: port: 8081

而 XML 则需要这样写:

 8081

YAML 语法

  • 基本语法:k:(空格) v 表示键值对(空格必须有)
  • 以空格缩进控制层级关系,左对齐的为同一层级
  • 属性和值大小写敏感

值的写法

  • 字面量:直接写,字符串默认不加单引号或双引号。双引号不转义特殊字符,单引号会转义
  • 对象、Map:下一行写属性和值,仍用 k:v 方式
  • 数组(List、Set):用 - 值表示元素,也可使用行内写法

配置文件值注入

通过 @ConfigurationProperties 注解可将配置文件中的属性映射到组件中:

@Component@ConfigurationProperties(prefix = \"person\")public class Person { private String lastName; private Integer age; // 其他属性及getter、setter}

导入配置文件处理器可获得提示:

 org.springframework.boot spring‐boot‐configuration‐processor true

@Value 和 @ConfigurationProperties 的区别:

  • @ConfigurationProperties 支持批量注入、松散绑定、JSR303 数据校验和复杂类型封装
  • @Value 需一个个指定,支持 SpEL,不支持松散绑定和 JSR303 校验

六、自动配置原理

Spring Boot 的自动配置是其核心功能,原理如下:

  1. Spring Boot 启动时加载主配置类,@EnableAutoConfiguration 开启自动配置
  2. @EnableAutoConfiguration 通过 EnableAutoConfigurationImportSelector 向容器导入组件
  3. 扫描类路径下 META-INF/spring.factories,获取 EnableAutoConfiguration 对应的值,作为自动配置类导入容器
  4. 每个自动配置类在一定条件下生效,通过 @Conditional 派生注解判断
  5. 生效的自动配置类向容器添加组件,组件属性从对应的 properties 类获取,而 properties 类与配置文件绑定

我们可通过设置 debug=true 打印自动配置报告,了解哪些自动配置类生效。

七、快速创建 Spring Boot 项目

使用 IDE 的 Spring Initializer 可快速创建项目:

  1. 选择所需模块,向导会联网创建项目
  2. 主程序已生成,只需编写业务逻辑
  3. resources 文件夹结构:
    • static:存放静态资源(js、css、images)
    • templates:存放模板页面(需使用 freemarker、thymeleaf 等模板引擎)
    • application.properties:配置文件

Spring Boot 的出现,无疑为 Java 开发者带来了福音。它简化了配置,提高了开发效率,让我们能更专注于业务逻辑的实现。希望本文能帮助你开启 Spring Boot 的学习之旅,在实际开发中感受它的强大之处。