Spring Boot - 简介以及快速搭建 我就是我 2022-04-01 04:57 147阅读 0赞 ### 文章目录 ### * Spring Boot - 简介以及快速搭建 * * * * 1.什么是Spring Boot? * 2.使用Spring Boot的好处 * 3.Spring Boot的特性 * 4.Spring Boot 项目快速搭建 * * 使用Spring Boot插件创建项目 * * pom.xml * SpringbootBasicApplication.java # Spring Boot - 简介以及快速搭建 # #### 1.什么是Spring Boot? #### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70] > 我们先来通过以上这张趋势图来了解一下Spring Boot的基本情况,我们可以很清楚地看到Spring Boot在这些年来通过搜索引擎搜索的频率,很明显地呈现一个巨大的上升趋势,当我们要去学习一项新技术的时候,如果不是因为必须条件,那我们应该首先去了解他的需求趋势,互联网的技术迭代十分快,如果我们想要把所有东西都学会那是一项不可能完成的工作,如果为了加强我们的技能能力,那做一个好的判断和选择将对技术提升的效率有很大的帮助。 > 通过各种网站以及书籍都能都看到这样的几句介绍,Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 > 我们再来看一下官方的一段话:Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring. > 大概的意思就是 Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。 > 其实上面这些已经很好能概述出Spring Boot的面目,核心就是简化Spring应用程序的创建和开发过程。 #### 2.使用Spring Boot的好处 #### > 在没有使用Spring Boot之前我们搭建一个项目需要配置很多配置文件,然后我们还需要将他们整合在一起,使用Spring Boot对此开发过程进行了革命性地颠覆,抛弃了繁琐的xml配置过程,利用了大量的默认配置简化了我们的搭建和开发项目的过程,采用Spring Boot我们可以非常容易并且快速地创建基于Spring框架的应用程序,他使编码更简单、配置更简单、部署更简单、监控更简单。 > 正是因为化繁为简,使开发变得极其简单和快速,并且对主流框架无配置继承,所以在业界中备受关注,使用趋势逐步上升。 #### 3.Spring Boot的特性 #### > 1. 能够快速创建基于Spring的应用程序 > 2. 可以直接使用Java中main方法启动内嵌的Tomcat/Jetty等Web服务器运行Spring Boot程序 > 3. 提供大量starter起步依赖简化Maven引入依赖时的配置 > 4. 自动配置加载Spring、Spring Mvc等 > 5. 更好地支持注解配置而可以减少使用配置文件 > 6. 自身提供监控、健康检查等功能 > 将这些特性概括起来,其实主要为四大核心功能 > > 1. 自动配置:针对很多Spring应用程序和常见的应用功能,能自动提供相关配置 > 2. 起步依赖:若需要使用某种功能,只需引入Spring Boot中该功能的起步依赖,就会自动去配置对应的各版本所需要用到的依赖库 > 3. Actuator:提供监控以及管理Spring Boot应用程序的功能 > 4. 命令行界面:该特性属于可选特性,主要针对Groovy语言 #### 4.Spring Boot 项目快速搭建 #### [Spring Boot官网][Spring Boot] [Spring Boot最新版本官方文档][Spring Boot 1] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 1] > 当我们去学习一样新技术的时候,官方提供的资料对我们来说是一个最佳的途径,这里我们先来看下目前Spring Boot发布版本的情况,大部分公司使用的话为了保证稳定性和避免不必要的风险一般会选择稳定的版本,但是新版本之所以新就是因为他提供了更强大的功能,我们可以自己平时去了解和学习这些新的功能点,这里可以看到目前官方已经更新到了2.1.1.RELEASE版本,我们这里就按照最新的版本去对Spring Boot进行学习。 > 我们这里使用IDEA去搭建开发项目,由于自带了SpringBoot插件所以方便很多,这里Maven推荐3.2以上,JDK使用8,需要注意的是Spring Boot、Maven、JDK是存在版本兼容问题的,具体的可以对比下这篇博友整理的博客。 > [Springboot/jdk/Maven版本匹配][Springboot_jdk_Maven] > 如果大家使用的是Eclipse构建Spring Boot项目,推荐去安装一下Spring Tool Suite(STS)这款插件,关于Eclipse如何构建Spring Boot项目可以参考我下面这篇文章 > [Eclipse-Spring Boot项目构建][Eclipse-Spring Boot] ##### 使用Spring Boot插件创建项目 ##### > 这里我们使用IDEA自带的Spring Boot插件创建一个Spring Boot项目,选择Spring Initializr需要注意的是这种方式需要保证网络可用,需要从spring 官网去获取一些基本的配置信息 > ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 2] > 这里和我们创建普通的Maven项目一样配置项目的基本信息 > ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 3] > 如果我们需要构建的项目是一个Web项目,则将Web勾上 > ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 4] > 就这样简单几步,我们就构建了一个Spring Boot项目,并且无需任何额外配置就可以将他作为一个Web应用启动,比起我们之前繁琐的各种构建配置效率上的提升是十分巨大的。 - src -main -java -package -SpringbootApplication -resouces(资源文件) - statics(静态资源) - templates(模板资源) - application.properties(配置文件) -test - pom.xml(基本的依赖管理文件) > 这里我们先看一下构建出的项目的目录结构,大体和我们之前Maven项目一致 ###### pom.xml ###### <?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.springboot</groupId> <artifactId>springboot-basic</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-basic</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <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> <build> <plugins> <!--springboot提供的项目编译打包插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> > 我们来看一下自动生成的pom.xml Maven依赖管理文件,最关键的就是引了spring boot的父级依赖,我们可以发现当引入了该依赖后再引入spring-boot-starter-web web起步依赖不需要指定版本号,这就是由于版本号统一管理的原因,当然我们也可以手动去指定依赖需要的版本。 > spring-boot-starter-parent 其实是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签,大家可以自己查看这个父类依赖的pom文件提供了哪些依赖jar。 ###### SpringbootBasicApplication.java ###### package com.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 所需扫描的类必须写在启动类同级或者子级目录下 * @author hzk * @date 2018/12/18 */ @SpringBootApplication public class SpringbootBasicApplication { public static void main(String[] args) { SpringApplication.run(SpringbootBasicApplication.class, args); } } > 到这一步我们找到SpringApplication.java直接运行main就能启动这个构建的web项目了。 > Spring Boot 项目通常会有一个名为 \*Application 的入口类,入口类里有一个 main 方法其实就是一个标准的 Java 应用的入口方法。 > @SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了: > @Configuration > @EnableAutoConfiguration > @ComponentScan > 若不使用 @SpringBootApplication 注解也可以使用这三个注解代替。 > 其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean,所以入口类建议就创建在grounpID + arctifactID 组合的包名包下,例如这里的com.springboot。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70]: /images/20220401/77e35f24b72b4d61a6bb0cc86a657c17.png [Spring Boot]: https://spring.io/projects/spring-boot#learn [Spring Boot 1]: https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-documentation-about [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 1]: /images/20220401/cec6823c6e914043b2b6c8d15efaca34.png [Springboot_jdk_Maven]: https://blog.csdn.net/wj197927/article/details/79563081 [Eclipse-Spring Boot]: https://blog.csdn.net/u013985664/article/details/79063574 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 2]: /images/20220401/0f1cd513a22d4de691a8788abf30b78c.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 3]: /images/20220401/b94a1f66b4e849e8b7f9c8de9ae46987.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM5ODU2NjQ_size_16_color_FFFFFF_t_70 4]: /images/20220401/edd0086aafa14888827a2623fa375938.png
还没有评论,来说两句吧...