一、Spring Boot简介
1.1什么是SpringBoot
我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。
2012 年 10 月,Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web 应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:
这一要求促使了 2013 年初开始的 Spring Boot 项目的研发,到今天,Spring Boot 的版本已经到了 2.0.3 RELEASE。Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。
它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑
1.2.、特性
-
快速创建独立 Spring 应用
-
SSM:导包、写配置、启动运行
-
-
直接嵌入Tomcat、Jetty or Undertow(无需部署 war 包)【Servlet容器】
-
linux java tomcat mysql:war 放到 tomcat 的 webapps下
-
jar:java环境;java -jar
-
-
重点:提供可选的starter,简化应用整合
-
场景启动器(starter):web、json、邮件、oss(对象存储)、异步、定时任务、缓存...
-
导包一堆,控制好版本。
-
为每一种场景准备了一个依赖; web-starter。mybatis-starter
-
-
重点:按需自动配置 Spring 以及 第三方库
-
如果这些场景我要使用(生效)。这个场景的所有配置都会自动配置好。
-
约定大于配置:每个场景都有很多默认配置。
-
自定义:配置文件中修改几项就可以
-
-
提供生产级特性:如 监控指标、健康检查、外部化配置等
-
监控指标、健康检查(k8s)、外部化配置
-
-
无代码生成、无xml
1.3、四大核心
-
自动配置(Auto-configuration)
-
Spring Boot会根据项目中引入的依赖和其他因素自动配置应用程序。例如,当在项目的classpath中检测到spring-boot-starter-web依赖时,Spring Boot会自动配置一个内嵌的Servlet容器(如Tomcat)和相关的Web组件。
-
通过这种自动配置,开发人员无需手动编写大量的配置代码,从而降低了配置的复杂度,提高了开发效率。
-
-
起步依赖(Starters)
-
起步依赖是Spring Boot提供的一组特殊的Maven或Gradle依赖,用于快速添加应用程序所需的功能。
-
例如,spring-boot-starter-web起步依赖包含了Web应用程序所需的所有依赖,如Spring MVC、Tomcat等。开发人员只需在项目的构建配置文件中添加相应的起步依赖,即可快速构建所需的功能。
-
-
命令行界面(Command Line Interface, CLI)
-
这是Spring Boot的一个可选特性,允许开发人员通过命令行快速创建和运行Spring应用程序。
-
通过CLI,开发人员可以更加快速地迭代和测试应用程序,无需进行繁琐的项目构建和部署过程。
-
-
Actuator
-
Actuator是Spring Boot提供的一个监控和管理应用程序的工具。
-
通过Actuator,开发人员可以深入了解运行中的Spring Boot应用程序的状态和性能,包括应用程序的健康检查、度量信息、环境属性等。
-
Actuator还提供了一系列端点(endpoints),用于与应用程序进行交互,如获取JVM信息、关闭应用程序等。
-
1.4、特点
-
简化配置:
-
Spring Boot采用了“约定优于配置”的理念,通过自动配置和默认配置减少了繁琐的XML配置和代码编写。
-
它提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
-
这使得开发人员可以更加专注于业务逻辑的实现,而无需过多关注底层的技术细节。
-
-
快速搭建:
-
Spring Boot提供了一键式的快速搭建功能,内置了Tomcat等常用插件,开发者只需要添加少量的依赖和配置即可快速搭建起一个应用程序。
-
它支持以jar包的形式独立运行,项目只需通过命令“java -jar xx.jar”即可运行。
-
-
微服务支持:
-
Spring Boot提供了丰富的功能和工具,支持构建分布式微服务架构。
-
它方便实现服务治理、负载均衡、容错等功能,使得微服务架构的搭建和运维更加简单。
-
-
自动配置:
-
Spring Boot根据应用程序中的依赖,自动推断和配置各种组件的默认行为。
-
它允许开发者自定义配置参数,通过配置文件即可灵活调整应用程序的行为。
-
这种自动配置机制大幅减少了开发人员的工作量,提高了开发效率。
-
-
管理依赖:
-
Spring Boot使用了Maven或Gradle来管理依赖关系,直接声明所需的依赖即可,不再需要手动处理版本冲突和依赖安装等问题。
-
通过@EnableAutoConfiguration注解,自动装配各种组件和配置,大大减少了配置的繁琐性。
-
-
内置服务器:
-
Spring Boot内置了常用的Web服务器,例如Tomcat、Undertow等,开发者不需要自己手动配置服务器,实现了快速启动的功能。
-
二、快速入门
2.1 搭建springboot工程
在主类所在的包下创建controller包并在该包下创建一个HelloController类
@RestController
public class HelloController {
@GetMapping("hello")
public Map<String, Object> hello() {
// 创建一个用于存储返回结果的Map对象
Map<String, Object> map = new HashMap<>();
// 向Map中添加名为"name"的键值对,值为"张三"
map.put("name", "张三");
// 向Map中添加名为"age"的键值对,值为25
map.put("age", 25);
// 返回存储结果的Map对象
return map;
}
}
启动主函数:
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
浏览访问HelloContnroller下的路径资源:
2.2 了解pom.xml以及配置文件
pom.xml
<!--继承springboot父工程:该工程中的主要作用:对jar的版本管理-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
application.properties
application.properties
配置文件是用于配置应用程序的各种属性和设置的文件。它是一个常见的外部配置文件,可以在其中指定应用程序的行为,包括数据库连接、端口号、日志级别、国际化设置等。
#Tomcat端口号[] key=value
server.port=7777
# 设置工程的上下文路径
server.servlet.context-path=/aaa
2.3. springboot的配置文件种类
properties
:属性文件类型: 格式 key=value格式
#Tomcat端口号[] key=value
server.port=7777
# 设置工程的上下文路径
server.servlet.context-path=/aaa
yml:文件类型: 格式:
application.yml
server:
port: 8081 #Tomcat端口号[]
servlet:
context-path: /bbb #设置工程的上下文路径
如果yml
和properties
都存在相同的配置,则以properties为主
, 如果两个配置文件的内部不同。则合并。
注:不管是哪种格式,他们的名称必须叫:application
2.4、将项目打成jar包
双击maven
的package
(打包)按钮,对项目进行打包。若打包成功,则会在target
目录下生成一个jar
包。如下图所示:
打成了jar
包后,该项目就可以在任何地方运行了!
注:在以前开发的web
单体应用中,所有的功能被放在一个war
包内;而使用Spring Boot
开发的微服务项目中,各个项目会被打包成一个个可执行的jar
包。
关注 “Java技术营地” 微信公众号,干货每日准时送达。