返回介绍

3.1 Spring Boot 简介

发布于 2025-04-21 20:58:43 字数 6348 浏览 0 评论 0 收藏

Spring 框架从诞生以来就是一款非常优秀的框架,随着其发展,几乎集成了各种第三方中间件。当开发一个大型的企业应用项目时,需要很多配置文件,此时集成第三方工具包时变得非常麻烦,这也是 Spring 框架被吐槽最多的一点。Pivotal 公司也意识到了 Spring 框架的这些问题,所以启动了 Spring Boot 的开发,目的是减少开发过程中的配置,而且还可以生成各种 Starter 工具包,以方便集成第三方工具包。基于这两个方面的改进,使得 Spring Boot 迅速流行起来。

3.1.1 Spring Boot 的特性

在采用 Spring MVC 框架实现一个后端接口服务应用时,需要依赖 spring-web、spring-context、spring-beans、spring-aop、spring-aspects、spring-core 和 spring-webmvc 等相关模块,同时还需要声明 web.xml、dispatcher-servlet.xml 等配置文件。完成以上操作之后,还需要将其部署到 Tomcat 服务器上。如果使用 Spring Boot 框架进行开发,会让一切变得非常简单,只需要依赖一个 spring-boot-starter-web 即可完成。

Spring Boot 不是对 Spring 框架功能上的增强,而是提供了一种快速使用 Spring 的方式。Spring Boot 的主要特性如下:

  • 提供了各种 Starter。这些 Starter 可以自动依赖与版本控制相关的工具包。同时 Spring Boot 还可以让开发人员自定义 Starter,即 Starter 是可定制化的。各种第三方工具包都可以用 Starter 来定制,可以减少版本的冲突问题。
  • 简化了 Spring 框架的开发流程。Spring Boot 提供了更佳的入门体验,可以快速构建独立运行的 Spring 应用程序。
  • 提供了大量的自动配置,简化了开发过程,不需要配置 XML,没有代码生成,开箱即用,还可以通过修改默认值来满足特定业务的需求。
  • 通过内嵌的 Servlet 容器,如 Tomcat、Jetty 或 Undertow 等部署接口服务,应用无须打 WAR 包,即可以 JAR 包的形式运行。
  • 提供了应用监控、健康检查及安全指标等功能。
  • 适合微服务开发,天然适合与云计算结合。通过与 Spring Cloud 家族集成,可以快速开发微服务应用。

3.1.2 快速创建 Spring Boot 应用

创建 Spring Boot 应用有多种方式,如将 Spring Tool Suite 插件集成到 Eclipse 等开发工具中,也可以下载安装 Spring Boot CLI 执行脚本,或使用 Spring Initializr 工具等。下面使用 Spring 官网提供的 Spring Initializr 工具初始化一个 Spring Boot 工程,步骤如下:

(1)登录 Spring 官网 https://start.spring.io/,在 Project 下选择 Maven Project 选项,在 Language 下选择 Java 选项,在 Spring Boot 下选择 2.3.3 选项,然后在 Project Metadata 栏中依次设置 Group、Artifact、Name、Description、Package name、Packaging、Java 等信息,如图 3.1 所示。

046-1

图 3.1 使用 Spring Initializr 工具构建 Spring Boot 工程

(2)设置完成后单击右侧的 ADD DEPENDENCIES…CTRL+B 按钮,添加 Spring Web 依赖包,如图 3.2 所示。

047-1

图 3.2 添加 Spring Web 依赖包

(3)单击 GENERATE CTRL+047-3按钮,即可完成项目的下载,如图 3.3 所示。

047-2

图 3.3 生成项目

(4)解压 spring-boot-example.zip 包,导入开发工具,然后新建 HiController 类,代码如下:

@RestController
@RequestMapping("/hi")
public class HiController {
    @GetMapping("/springBoot")
    public String hi(){
        return "hi spring boot!";
    }
}

(5)直接运行 SpringBootExampleApplication 类。启动成功后,在浏览器中输入 http://localhost:8080/hi/springBoot,将显示“hi spring boot!”。这样,一个简单的 Spring Boot 应用便创建成功了。是不是特别简单?

3.1.3 Spring Boot Starter 简介

在 3.1.2 节中,我们新建了一个应用程序,只依赖 spring-boot-starter-web 包就可以开发出一个后端接口服务。Spring Boot 提供了很多 Starter 用于自动依赖并进行版本控制的 JAR 包,而且 Spring Boot 在配置上相比 Spring 要简单许多,其核心在于只需要引入官方提供的 Starter 便可以直接使用,免去了各种复杂的配置。

Spring Boot 官方对 Starter 项目的定义是有要求的,通常命名为 spring-boot-starter-{name},如 spring-boot-starter-web,对于非官方的 Starter 命名应遵守{name}-spring-boot-starter 的格式。下面通过一个具体的示例来演示创建一个 Starter 项目的过程。

(1)创建一个名为 biz-spring-boot-starter 的 MAVEN 工程,并且在 pom 文件中添加依赖,具体代码如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:
//www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://
maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.
xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.springboot.starter</groupId>
  <artifactId>biz-spring-boot-starter</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
                <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
  </parent>
  <dependencies>
                <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-configuration-processor</artifactId>
           <optional>true</optional>
        </dependency>
        <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <scope>compile</scope>
        </dependency>
     </dependencies>
</project>

(2)新建一个配置文件读取类 BizProperties,代码如下:

//配置属性
@Data
@ConfigurationProperties(prefix="hi")
public class BizProperties {
        private String name;
}

(3)新建 Service 类 BizService,代码如下:

//声明 BizService 类
public class BizService {
        public String name;
        public BizService(String name) {
                this.name = name;
        }
        public String say() {
                return "hi " + this.name;
        }
}

(4)新建自动配置类 BizAutoConfiguration,代码如下:

//配置类,创建 BizService 对象
@Configuration
@EnableConfigurationProperties(BizProperties.class)
//程序需要配置 hi.name 属性才能生效
@ConditionalOnProperty("hi.name")
public class BizAutoConfiguration {
        @Bean
        public BizService bizService(BizProperties bizProperties) {
                //创建 BizService
                return new BizService(bizProperties.getName());
        }
}

注意:@ConditionalOnProperty("hi.name") 注解表示只有配置文件中有 hi.name 属性时才自动配置 Bean 对象 BizService。

(5)在 resources/META-INF 下添加 spring.factories 指定的自动装配类,配置如下:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.spring.boot.configuration.BizAutoConfiguration

(6)改造 3.1.2 节创建的工程。首先依赖 biz-spring-boot-starter 包,然后在 application. properties 文件中新增配置,具体如下:

hi.name=Spring Boot

(7)改造 HiController 类,自动注入 BizService,代码如下:

//改造 HiController
@RestController
@RequestMapping("/hi")
public class HiController {
    @Resource
    private BizService bizService;
    @GetMapping("/springBoot")
    public String hi(){
        return bizService.say();
    }
}

(8)重新启动应用,在浏览器中访问 http://localhost:8080/hi/springBoot,将显示“hi Spring Boot!”。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。