Spring Boot 入门教程
大家好,我是深码青年,作为一名迄今为止已经有四年码龄的人来说,springboot已经深入了自己的脑子里面,所以借此机会,我们来仔细说一说关于springboot2.0的那些事儿
一、Spring Boot 是什么
以下截图自
[Spring Boot 官方文档](https://spring.io/projects/spring-boot "Spring Boot 官方文档")
翻译整理一下,内容如下:
Spring Boot 是基于 Spring 框架基础上推出的一个全新的框架, 旨在让开发者可以轻松地创建一个可独立运行的,生产级别的应用程序。
基于 Spring Boot 内部的自动化配置功能,开发者可以在"零"配置, 或者只需要添加很少的配置,就可以进行日常的功能开发。
二、为什么要使用 Spring Boot
用权威说话,下图同样截图自
[Spring Boot 官方文档](https://spring.io/projects/spring-boot "Spring Boot 官方文档")
我们再来翻译整理一下,内容如下:
- 能够轻松、方便地创建一个 Spring 应用;
- 直接使用内嵌的 Tomcat, Jetty, Undertow 容器(无需再手动安装容器,通过部署 WAR 包的方式);
- 内部自动管理各种 Jar 包的版本依赖关系,再也不用为版本冲突而烦恼啦;
- 自动化配置 Spring 相关功能,以及第三方库;
- 提供诸如指标,健康检查, 外部化配置等功能;
- "零配置",再也不需要手写地狱般的 XML 配置了;
怎么样,看了 Spring Boot 这些强大的特性以后,是不是开始跃跃欲试了,接下来,让我们快速入门 Spring Boot 吧 !
> PS: 正由于 Spring Boot 以上特性,才得以使它成为构建微服务架构的基础组件。
三、快速入门
3.1 创建 Spring Boot 项目
3.1.1 通过 Spring Initializr 来创建
- 访问 Spring Initializr 地址:
- 生成项目, 导入到开发工具中
- File -> New -> Model from Existing Source, 可参考下图:
- 弹出框中,选中您的解压后的文件夹 -> OK -> 选择通过 Maven 的方式来导入项目:
- 一路点击 Next -> Finished;
至此,通过 Spring Initializr 网站来创建应用,并导入到了我们的开发工具 IntelliJ IDEA 中就成功了。
> PS: 如果您使用的是 Eclipse, 方式是 Import -> Existing Maven Projects -> Next -> 选择解压后的文件夹 -> Finsh
3.1.2 通过 IntelliJ IDEA 来创建应用
其实,我们还可以直接通过 IntelliJ IDEA 来创建一个 Spring Boot 项目,因为 IntelliJ IDEA 内置了 Spring Initializr,接下来,通过图文,让我们来看下要如何一步一步操作:
- File -> New -> Project, 跳出新建项目弹出框:
- 点击 Next,弹出填写 maven 项目的需要的相关信息,这里我们用默认的就好了,继续点击 Next;
- 再次弹出框,这里可以勾选开发中需要的 Starter 的组件, 如 Web, Redis 等,我们这里暂时不勾,后面通过手动添加的方式, 继续点击 Next -> Finish;
3.2 项目结构
项目创建成功后,可以看到结构如下:
共分为三个主要的文件夹:
-
src/mail/java
: 存放 Java 源码,包括启动程序的入口; -
src/mail/resources
: 资源目录,用于放置相关配置文件,静态文件 html, css 等; -
src/test/java
: 存放单元测试类
3.3 引入 Web 依赖
在 pom.xml
文件中添加 web
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
> PS: 不用手动去指定版本号,因为 Spring Boot 内部已经维护相关 Jar 包的依赖关系。
3.4 编写第一个接口
在 com.example.demo
包下添加 controller
包,用来存放所有对外部开发的接口, 完成后,创建 HelloController.java
类, 添加一个 /hello
接口:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot !";
}
}
添加 @RestController
注解,表示此类中所有定义的接口均为 RESTFul 风格,也就是说返参均为 JSON 格式的。
@GetMapping("/hello")
表示定义一个 GET 请求的接口,路径为 /hello
。
3.5 启动程序,验证效果
根据图示,点击按钮,来启动 Spring Boot Web 程序, 查看控制台输出:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2023-10-01 19:57:59.795 INFO 3680 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication on 192.168.0.100 with PID 3680 (/Users/a123123/Work/IdeaProjects/demo/target/classes started by allen-jiang in /Users/a123123/Work/IdeaProjects/demo)
2023-10-01 19:57:59.798 INFO 3680 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2023-10-01 19:58:00.666 INFO 3680 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2023-10-01 19:58:00.689 INFO 3680 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-10-01 19:58:00.689 INFO 3680 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17]
2023-10-01 19:58:00.756 INFO 3680 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-10-01 19:58:00.757 INFO 3680 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 920 ms
2023-10-01 19:58:00.978 INFO 3680 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2023-10-01 19:58:01.183 INFO 3680 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2023-10-01 19:58:01.186 INFO 3680 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.678 seconds (JVM running for 2.176)
当控制台日志中输出了 Tomcat started on port(s): 8080 (http) with context path ''
时,表示内嵌的 Tomcat 容器已经启动成功了,端口为 8080 !
接下来,我们在浏览器上访问 http://localhost:8080/hello
接口,验证一下,接口是否能够正常访问:
返回了我们想要的 Hello, Spring Boot !
字符串,接口访问正常,大功告成!
四、总结
本文中,我们首先了解了什么是 Spring Boot, 以及Spring Boot 的相关特性,最后我们手把手学习了如何搭建一个 Spring Boot 项目,并编写了第一个接口且访问成功。
通过实际操作,真切地感受到了 Spring Boot 的魅力所在!老铁,双击 666!
五、Reference
六、写在最后
欢迎大家关注围观我的日常推文,学习更多知识!