SpringBoot之入门使用
系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
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
- 访问start.spring.io
- 生成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 应用程序,使开发人员能够更加专注于业务逻辑的开发。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!