SpringBoot技术快速入门
目录
Spring Initializr 创建SpringBoot项目
Spring Boot是什么
众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称为“配置地狱”。
为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot。
Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微服务技术的流行,Spring Boot 也成为了时下炙手可热的技术。
Spring Boot 的特点
Spring Boot 具有以下特点:
1. 独立运行的 Spring 项目
Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。
2. 内嵌 Servlet 容器
Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包
3. 提供 starter 简化 Maven 配置
Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。
4. 提供了大量的自动配置
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
5. 自带应用监控
Spring Boot 可以对正在运行的项目提供监控。
6. 无代码生成和 xml 配置
Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。
配置开发环境
在使用 Spring Boot 进行开发之前,第一件事就是配置好开发环境。工欲善其事,必先利其器,IDE(集成开发环境)的选择相当重要,目前市面上有很多优秀的 IDE 开发工具,例如 IntelliJ IDEA、Spring Tools、Visual Studio Code 和 Eclipse 等等,那么我们该如何选择呢?
这里我们极力推荐大家使用 IntelliJ IDEA,因为相比于与其他 IDE,IntelliJ IDEA 对 Spring Boot 提供了更好的支持。Spring Boot 版本及其环境配置要求如下表
创建 Spring Boot 项目
开发环境配置完成后,接下来,我们就可以通过 Intellij IDEA 创建一个 Spring Boot 项目了。 Intellij IDEA 一般可以通过两种方式创建 Spring Boot 项目:
- 使用 Maven 创建
- 使用 Spring Initializr 创建
Maven 创建Spring Boot 项目
- 在 IntelliJ IDEA 欢迎页面左侧选择 Project ,然后在右侧选择 New Project,如下图
或者在 IntelliJ IDEA 工作区上方的菜单栏中选择 File ,在下拉菜单中中选中 New,然后选择 Project,如下图
2.在左侧的选项中选择 Maven,勾选 Create from archetype 选项,然后在下面选择合适的 Maven Archetype(模型),最后点击下方的 Next 按钮,如下图
注意
:此处我们也可以不勾选 Create from archetype 选项,直接点击下方的 Next 按钮,直接创建一个简单的 Maven 项目
- 如图 7 所示,展开 Artifact Coordinates ,分别输入项目名称(name)、存储位置(Location)、GroupId、ArtifactId 以及 Version 等信息,信息输入完成后,点击 Next 按钮
4.在该页面可以设置 Maven 的主目录和本地仓库信息,除此之外,我们还可以在下面的属性(Properties)列表中,检查和修改项目的信息。配置完成后,点击 Finish 按钮,完成项目的创建
5.返回 IntelliJ IDEA 工作区,会发现 Maven 项目创建完成,其目录结构如图 9 所示。
6.在该 Maven 项目的 pom.xml 中添加以下配置,导入 Spring Boot 相关的依赖
7.在 cn.kgc.springboot包下,创建一个名为 HelloWorldApplication 主程序,用来启动 Spring Boot 应用,代码如下
Spring Initializr 创建SpringBoot项目
IntelliJ IDEA 支持用户使用 Spring 项目创建向导(Spring Initializr )快速地创建一个 Spring Boot 项目,步骤如下
1.在 IntelliJ IDEA 欢迎页面左侧选择 Project ,然后在右侧选择 New Project,如下图
或者在 IntelliJ IDEA 工作区上方的菜单栏中选择 File ,在下拉菜单中选则 New,然后选择 Project,如下图
2.在新建工程界面左侧,选择 Spring Initializr,选择项目的 SDK 为 1.8,选择 starter service URL 为 http://start.spring.io(默认),最后点击下方的 Next 按钮进行下一步
3.IDEA 会连接网络,并根据 starter service URL 查询 Spring Boot 的当前可用版本和组件列表,如下图
在 Spring Initializr Project Settings 中,输入项目的 GroupId、ArtifactId 等内容,注意 Type 为 Maven,packaging 为 jar,Java version 切换为 8(默认为 11),最后点击下方的 Next 按钮,进行下一步
4.在 dependencise 界面中,选择 Spring Boot 的版本及所依赖的 Spring Boot 组件(例如 Spring Boot 的版本为 2.4.5, Spring Boot 组件为 Web),然后点击下方的 Next 按钮
5.根据需要修改项目名称及项目存储位置等信息,最后点击 Finish 按钮,完成 Spring Boot 项目的创建,如下图
6.返回 IDEA 工作区,可以看到 Spring Boot 项目 helloworld 已经创建完成。该项目不但具有完整的目录结构,还有完整的 Maven 配置,并默认生成了一个名为 HelloworldApplication 的主启动程序
此时,几乎所有的准备工作都已经准备就绪,我们可以在没有编写任何代码的情况下,直接将该 Spring Boot 项目运行起来。
启动 Spring Boot
默认情况下,Spring Boot 项目会创建一个名为 ***Application 的主程序启动类 ,该类中使用了一个组合注解 @SpringBootApplication,用来开启 Spring Boot 的自动配置,另外该启动类中包含一个 main() 方法,用来启动该项目。直接运行启动类 HelloworldApplication 中的 main() 方法,便可以启动该项目,结果如下图
注意:Spring Boot 内部集成了 Tomcat,不需要人为手动配置 Tomcat,开发者只需要关注具体的业务逻辑即可。
为了能比较的清楚的看到效果,我们在 cn.kgc.springboot 包下又创建一个 controller 包,并在该包内创建一个名为 HelloController 的 Controller,代码如下
重启 Spring Boot 项目,然后在地址栏访问 “http://localhost:8080/hello”,结果如下图
Spring Boot starter入门
传统的 Spring 项目想要运行,不仅需要导入各种依赖,还要对各种 XML 配置文件进行配置,十分繁琐,但 Spring Boot 项目在创建完成后,即使不编写任何代码,不进行任何配置也能够直接运行,这都要归功于 Spring Boot 的 starter 机制
Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的 starter(启动器),starter 中整合了该场景下各种可能用到的依赖,用户只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置。starter 提供了大量的自动配置,让用户摆脱了处理各种依赖和配置的困扰。所有这些 starter 都遵循着约定成俗的默认配置,并允许用户调整这些配置,即遵循“约定大于配置”的原则
并不是所有的 starter 都是由 Spring Boot 官方提供的,也有部分 starter 是第三方技术厂商提供的,例如 druid-spring-boot-starter 和 mybatis-spring-boot-starter 等等。当然也存在个别第三方技术,Spring Boot 官方没提供 starter,第三方技术厂商也没有提供 starter
以 spring-boot-starter-web 为例,它能够为提供 Web 开发场景所需要的几乎所有依赖,因此在使用 Spring Boot 开发 Web 项目时,只需要引入该 Starter 即可,而不需要额外导入 Web 服务器和其他的 Web 依赖
您可能会发现一个问题,即在以上 pom.xml 的配置中,引入依赖 spring-boot-starter-web 时,并没有指明其版本(version),但在依赖树中,我们却看到所有的依赖都具有版本信息,那么这些版本信息是在哪里控制的呢?
其实,这些版本信息是由 spring-boot-starter-parent(版本仲裁中心) 统一控制的。
spring-boot-starter-parent
spring-boot-starter-parent 是所有 Spring Boot 项目的父级依赖,它被称为 Spring Boot 的版本仲裁中心,可以对项目内的部分常用依赖进行统一管理。
Spring Boot 项目可以通过继承 spring-boot-starter-parent 来获得一些合理的默认配置,它主要提供了以下特性:
- 默认 JDK 版本(Java 8)
- 默认字符集(UTF-8)
- 依赖管理功能
- 资源过滤
- 默认插件配置
- 识别 application.properties 和 application.yml 类型的配置文件
SpringBoot基本设置
6.1SpringBoot设置端口号
server: port: 8989 #配置端口
6.2SpringBoot设置项目名
server: servlet: context-path: /springboot #配置项目的虚拟路径(根路径) 项目名使用/开头
6.3SpringBoot配置文件的拆分
spring: profiles: active: dev #开发环境
6.4SpringBoot开启日志
6.5SpringBoot实现热部署
在web项目的开放过程中,通常我们每次修改完代码都需要重新启动项目,实现重新部署。但是随着项目越来越庞大,每次启动都是一个费时的事情。所以,热部署是一个非常构建的技术,有了热部署,可以极大提高我们的开发效率
spring-boot-devtools实现热部署
1.引入依赖
2.配置maven插件
3.配置application.yml文件
4.修改idea设置
File-Settings-Compiler 勾选 Build Project automatically
5.设置Registry
ctrl + shift + alt + / ,选择Registry,勾选Compiler autoMake allow when app running
6.6SpringBoot开启分页查询
1.引入依赖
2.配置application.yml文件(可以不配置使用默认)
3.编写控制器,业务层,持久化层进行测试
springBoot对象管理
- 管理对象spring中管理对象的方式:1.使用xml配置文件,在文件中使用bean标签设置对象的管理
2.使用注解 @Component @Controller @Service @Repository
springboot管理对象的方式:
1.使用配置方式创建对象
springboot支持使用@Configuration注解添加在配置类上,该类作为一个配置类,相当于spring的配置文件,该注解只能使用在类上。在配置类中方法上使用@Bean注解,相当于spring配置文件中的bean标签
- 2.使用原始的spring注解 @Component @Controller @Service @Repository
- 属性注入spring 原始的注入方式1.set方式2.constructor3.自动注入
对象的注入
注意:添加一下依赖,可以再写yaml文件时提示,消除红色的警告提示。
springBoot整合JSP
引入依赖
配置视图解析器
设置不重启项目 刷新jsp页面
集成后无法访问jsp页面解决方案
1.添加插件
2.设置工作目录
3.插件启动