提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
SpringBoot之入门使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
Spring Boot 是一个基于 Spring 框架的 Java Web 开发框架,旨在简化 Spring 应用程序的搭建和开发过程。它提供了一系列的特性和工具,使得开发者可以更加快速和高效地创建企业级应用程序。
在这篇博客中,我将介绍 Spring Boot 的入门使用,包括如何创建一个简单的 Spring Boot 项目、如何运行和调试应用程序,以及如何使用一些常用的 Spring Boot 特性。
如果你是一个 Java 开发者,并且想要学习如何使用 Spring Boot 来构建高效、可靠的 Web 应用程序,那么这篇博客将为你提供一个很好的起点。让我们开始吧!
提示:以下是本篇文章正文内容,下面案例可供参考
尽管 Spring 的组件代码相对较轻量级,但其配置却相对较重。使用 Spring 进行项目开发需要在配置文件中编写大量的代码,这些配置都代表了开发过程中的额外工作量。此外,Spring 项目的依赖管理也是一个耗时且复杂的任务。在环境搭建阶段,需要仔细分析需要导入哪些库的坐标,同时还需要考虑导入与之有依赖关系的其他库的坐标。一旦选择了错误的依赖版本,可能会导致不兼容问题,严重影响项目的开发进度。例如,Spring 5.0 及以上版本只能与 Junit 4.12 及以上版本兼容。
Spring Boot 是一个用于创建独立生产级别的 Spring 应用程序的框架,它简化了 Spring 应用程序的开发过程,提供了一种更快速、更轻量级的方式来构建基于 Spring 框架的应用程序。
Spring Boot 通过提供一些默认配置和约定,减少了开发人员在配置上的工作量,让开发者可以更专注于业务逻辑的实现。以下是 Spring Boot 的一些主要特点:
3.解压生成的SpringBoot项目
4.在idea中打开项目即可
1.在idea中新建项目
2.项目类型为Spring Initializr,选择JDK版本,Java版本选择8
3.选择自己想要的SpringBoot版本,点击自己需要的起步依赖,最后creat
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
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.0-M1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
起步依赖可以理解为一个项目启动时所需要的基本依赖关系。它是 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接口来在应用程序启动后进行额外的配置操作。
标注是SpringBoot的启动类。此注解等同于@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan。当在一个类上添加@SpringBootApplication注解时,Spring Boot 会根据注解中的信息自动配置应用程序。它会扫描当前类所在的包及其子包中的类,并根据需要进行自动配置,例如添加必要的 Bean、配置数据源、启动 Web 服务器等。
@SpringBootConfiguration是@Configuration的派生注解,跟@Configuration功能一致,标注这个类是一个配置类,只不过@SpringBootConfiguration是Springboot的注解,而@Configuration是Spring的注解
SpringBoot自动配置注解。等同于@AutoConfigurationPackage+@Import(AutoConfigurationImportSelector.class)
简单来说,当使用@EnableAutoConfiguration注解时,Spring Boot 会根据类路径设置、其他 Bean 和各种属性设置等信息,自动配置项目所需的 Bean。
自动扫描包的注解,它会自动扫描主类所在包下所有加了注解的类(@Controller,@Service等),以及配置类(@Configuration)。
该注解会导入AutoConfifigurationImportSelector类对象,该对象会从META-INF/spring.factories文件中读取配置类的名称列表。
该注解会扫描项目,自动装配一些项目启动需要的Bean。
提示:这里对文章进行总结:
总之,Spring Boot 提供了一种简洁、高效的方式来构建和部署 Spring 应用程序,使开发人员能够更加专注于业务逻辑的开发。