SpringBoot之入门使用

2024-01-01 15:28:04

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
SpringBoot之入门使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

Spring Boot 是一个基于 Spring 框架的 Java Web 开发框架,旨在简化 Spring 应用程序的搭建和开发过程。它提供了一系列的特性和工具,使得开发者可以更加快速和高效地创建企业级应用程序。
在这篇博客中,我将介绍 Spring Boot 的入门使用,包括如何创建一个简单的 Spring Boot 项目、如何运行和调试应用程序,以及如何使用一些常用的 Spring Boot 特性。
如果你是一个 Java 开发者,并且想要学习如何使用 Spring Boot 来构建高效、可靠的 Web 应用程序,那么这篇博客将为你提供一个很好的起点。让我们开始吧!


提示:以下是本篇文章正文内容,下面案例可供参考

一、Spring缺点分析

尽管 Spring 的组件代码相对较轻量级,但其配置却相对较重。使用 Spring 进行项目开发需要在配置文件中编写大量的代码,这些配置都代表了开发过程中的额外工作量。此外,Spring 项目的依赖管理也是一个耗时且复杂的任务。在环境搭建阶段,需要仔细分析需要导入哪些库的坐标,同时还需要考虑导入与之有依赖关系的其他库的坐标。一旦选择了错误的依赖版本,可能会导致不兼容问题,严重影响项目的开发进度。例如,Spring 5.0 及以上版本只能与 Junit 4.12 及以上版本兼容。

二、什么是SpringBoot

Spring Boot 是一个用于创建独立生产级别的 Spring 应用程序的框架,它简化了 Spring 应用程序的开发过程,提供了一种更快速、更轻量级的方式来构建基于 Spring 框架的应用程序。
Spring Boot 通过提供一些默认配置和约定,减少了开发人员在配置上的工作量,让开发者可以更专注于业务逻辑的实现。以下是 Spring Boot 的一些主要特点:

  • 自动配置(Auto-Configuration):Spring Boot 可以根据项目的依赖和内容自动配置应用程序,开发者无需手动配置许多常见的设置,减少了样板代码。
  • 独立性(Standalone):Spring Boot 应用程序可以作为独立的可执行 JAR 文件运行,内嵌了 Web 服务器(如 Tomcat、jetty),无需部署到外部服务器。
  • 约定大于配置(Convention over Conf):Spring Boot 遵循一些默认的约定,例如项目结构、文件命名等,减少了开发者需要做的决策。
  • 内嵌式 Web 容器(Embedded Web Container):Spring Boot 内置了常用的 Web 容器,可以快速地开发和部署 Web 应用程序。
  • 起步依赖(Starter Dependencies):Spring Boot 提供了一系列预配置的依赖库,可以轻松地集成各种功能,如数据库访问、安全认证、消息传递等。
  • 自动化配置(Automated Configuration):SpringBoot项目自动提供最优配置,同时可以修改默认值满足特定的要求。
  • 可嵌套性(Embeddable):Spring Boot 应用程序可以嵌入到其他 Spring 应用程序中以提供特定的功能。

三、SpringBoot的使用

官网搭建SpringBoot

  1. 访问start.spring.io
  2. 生成SpringBoot项目
    在这里插入图片描述
    SpringBoot版本说明:
  • CURRENT:最新版本(但不一定稳定)。
  • GA:General Availability,正式发布的版本,官方推荐使用该版本,国外很多项目都是使用GA来表示正式发布版本。
  • SNAPSHOT:快照版,可以稳定使用,且该版本会一直进行小量的优化和改进。
  • PRE:预览版,主要是用来内部开发人员和测试人员测试使用,因此不建议使用。
  • Release:正式版,也可能没有任何后缀也表示正式版

3.解压生成的SpringBoot项目
4.在idea中打开项目即可

Idea搭建SpringBoot项目

1.在idea中新建项目
在这里插入图片描述
2.项目类型为Spring Initializr,选择JDK版本,Java版本选择8
在这里插入图片描述
3.选择自己想要的SpringBoot版本,点击自己需要的起步依赖,最后creat
在这里插入图片描述

Maven项目创建SpringBoot

1.使用Maven创建普通JAVA项目
在这里插入图片描述
2.在pom中添加项目的父工程、起步依赖、插件

<!--  父工程  -->
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.7.0-M1</version>
</parent>
<!-- 起步依赖  -->
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
</dependencies>
<!--  插件  -->
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

3.编写启动类

@SpringBootApplication
public class SpringBootApp {
  public static void main(String[] args) {
    SpringApplication.run(SpringBootApp.class, args);
   }
}

4.编写配置文件application.properties

#日志格式
logging.pattern.console=%d{MM/dd HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n
#端口号
server.port=8888

SpringBoot项目结构

POM文件

  • 所有的SpringBoot 项目都必须继承 spring-boot-starter-parent,也就是说,它们都是 spring-boot-starter-parent 的子项目。spring-boot-starter-parent 定义了常用的配置、依赖和插件等信息,供 SpringBoot 项目继承和使用。
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.7.0-M1</version>
  <relativePath/> <!-- lookup parent from repository -->
</parent>

  • SpringBoot项目中可以定义起步依赖,起步依赖不是以jar包为单位,而是以功能为单位
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

  • spring-boot-maven-plugin插件是将项目打包成jar包的插件。该插件打包后的SpringBoot项目无需依赖web容器,可以直接使用JDK运行
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

SpringBoot原理分析

起步依赖

起步依赖可以理解为一个项目启动时所需要的基本依赖关系。它是 Spring Boot 框架的一个重要特性,用于简化项目的构建和配置过程。
举个例子,假设你要开发一个简单的 Web 应用程序,使用 Spring Boot 框架。你可以选择一个起步依赖,比如"spring-boot-starter-web",这个依赖会自动包含了开发 Web 应用程序所需的一些常见库和框架,如 Spring Web、Tomcat 服务器等。
起步依赖的好处是,你不需要手动添加和配置每个库和框架的依赖,而是通过选择一个起步依赖,它会自动为你处理这些依赖关系。这样可以减少冗余的配置,提高开发效率。
另外,起步依赖还提供了一些默认的配置,使得你的项目在相同的环境下能够以相同的方式运行。这意味着,当你使用某个起步依赖时,它会为你设置一些常见的配置选项,比如端口号、日志级别等,这样你可以更快速地启动和运行你的项目。

自动配置

Spring Boot 的自动配置原理是基于约定优于配置的理念实现的。它通过猜测应用程序可能需要的配置,并在启动时自动进行配置。

自动配置的核心是spring-boot-autoconfigure模块,该模块提供了很多自动配置的类,这些类会根据应用程序的上下文信息(如类路径、环境变量等)来决定是否进行配置。

当应用程序启动时,Spring Boot 会扫描项目中的类路径,查找@EnableAutoConfiguration或@ComponentScan注解,并根据这些注解来加载自动配置类。自动配置类会通过反射获取应用程序中的类和接口信息,并根据一些约定(如是否存在某个接口的实现类、是否存在某个注解等)来决定是否进行配置。
如果需要自定义自动配置,可以通过实现AutoConfigurationImportFilter接口或使用@AutoConfigureOrder注解来控制自动配置类的加载顺序,或者通过实现SmartInitializingSingleton接口来在应用程序启动后进行额外的配置操作。

核心注解

@SpringBootApplication

标注是SpringBoot的启动类。此注解等同于@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan。当在一个类上添加@SpringBootApplication注解时,Spring Boot 会根据注解中的信息自动配置应用程序。它会扫描当前类所在的包及其子包中的类,并根据需要进行自动配置,例如添加必要的 Bean、配置数据源、启动 Web 服务器等。

@SpringBootConfiguration

@SpringBootConfiguration是@Configuration的派生注解,跟@Configuration功能一致,标注这个类是一个配置类,只不过@SpringBootConfiguration是Springboot的注解,而@Configuration是Spring的注解

@EnableAutoConfiguration

SpringBoot自动配置注解。等同于@AutoConfigurationPackage+@Import(AutoConfigurationImportSelector.class)
简单来说,当使用@EnableAutoConfiguration注解时,Spring Boot 会根据类路径设置、其他 Bean 和各种属性设置等信息,自动配置项目所需的 Bean。

@AutoConfigurationPackage

自动扫描包的注解,它会自动扫描主类所在包下所有加了注解的类(@Controller,@Service等),以及配置类(@Configuration)。

@Import({AutoConfigurationImportSelector.class})

该注解会导入AutoConfifigurationImportSelector类对象,该对象会从META-INF/spring.factories文件中读取配置类的名称列表。

@ComponentScan

该注解会扫描项目,自动装配一些项目启动需要的Bean。


总结

提示:这里对文章进行总结:

总之,Spring Boot 提供了一种简洁、高效的方式来构建和部署 Spring 应用程序,使开发人员能够更加专注于业务逻辑的开发。

文章来源:https://blog.csdn.net/liubopro666/article/details/135324482
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。