首页 > 其他分享 >Spring Boot 入门教程

Spring Boot 入门教程

时间:2023-10-03 23:11:05浏览次数:53  
标签:INFO 10 3680 Spring 入门教程 Boot main

大家好,我是深码青年,作为一名迄今为止已经有四年码龄的人来说,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 官方文档")

 

 

我们再来翻译整理一下,内容如下:


  1. 能够轻松、方便地创建一个 Spring 应用;
  2. 直接使用内嵌的 Tomcat, Jetty, Undertow 容器(无需再手动安装容器,通过部署 WAR 包的方式);
  3. 内部自动管理各种 Jar 包的版本依赖关系,再也不用为版本冲突而烦恼啦;
  4. 自动化配置 Spring 相关功能,以及第三方库;
  5. 提供诸如指标,健康检查, 外部化配置等功能;
  6. "零配置",再也不需要手写地狱般的 XML 配置了;

怎么样,看了 Spring Boot 这些强大的特性以后,是不是开始跃跃欲试了,接下来,让我们快速入门 Spring Boot 吧 !

> PS: 正由于 Spring Boot 以上特性,才得以使它成为构建微服务架构的基础组件。

三、快速入门


3.1 创建 Spring Boot 项目

  3.1.1 通过 Spring Initializr 来创建

    1. 访问 Spring Initializr 地址:
    2. 生成项目, 导入到开发工具中
    3. File -> New -> Model from Existing Source, 可参考下图:
    4. 弹出框中,选中您的解压后的文件夹 -> OK -> 选择通过 Maven 的方式来导入项目:
    5. 一路点击 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,接下来,通过图文,让我们来看下要如何一步一步操作:

    1. File -> New -> Project, 跳出新建项目弹出框:
    2. 点击 Next,弹出填写 maven 项目的需要的相关信息,这里我们用默认的就好了,继续点击 Next;
    3. 再次弹出框,这里可以勾选开发中需要的 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


六、写在最后

欢迎大家关注围观我的日常推文,学习更多知识!

 

标签:INFO,10,3680,Spring,入门教程,Boot,main
From: https://www.cnblogs.com/shenMaQN/p/17740375.html

相关文章

  • [SpringBoot 2] 任务 和 Dubbo+ Zookeeper
    SpringBoot_21.任务1.1异步任务:方法上添加@Async,Application方法上开启异步@EnableAsync1.2邮件任务:添加spring-boot-starter-mail在自己的邮件账户中打开POP3/SMTP协议,并获取到授权码spring.mail.host=smtp.服务器host.com(具体着相关的文档)注入JavaMailSender......
  • 使用Springboot实现点击名称跳转到详情页面
    终于解决出来啦!!!嘎嘎嘎嘎~~~只需要在td标签里面嵌套上a标签就能实现啦!这里主要看一下功能,页面直接使用的白板~html页面的具体代码如下(将超链接标签a的样式进行了美化):<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>主界面</title></head>......
  • SpringBoot配置文件
    management.endpoints.web.exposure.include=*#server.port=8080#设置banner开关spring.main.banner-mode=console#设置logback日志logging.level.root=error#设置指定包级别logging.level.com.wanan.springbootdemo=errorlogging.level.com.wanan.springbootdemo.controller=erro......
  • springboot整合elasticsearch中的分词查询配置
    前言:elasticsearch最好还是在linux中进行集群部署,这样更符合企业需求和规范,笔者只在windows的单节点9200端口上部署,仅用于测试和学习。 什么是分词查询: 指的是将输入的文本或查询语句切分成一个个独立的词语或词项,以便更好地处理和分析,然后进行查询,比如你在百度上搜索”成都......
  • 【精品】Springboot 接收发送日期类型的数据
    问题无法请求到后台,后台报错:[Failedtoconvertpropertyvalueoftype'java.lang.String'torequiredtype'java.time.LocalDateTime'forproperty:2023-10-02T09:26:16.069+08:00WARN14296---[p-nio-80-exec-1].w.s.m.s.DefaultHandlerExceptionRes......
  • S32Kxxx bootloader 之 LIN UDS bootloader
    了解更多关于bootloader的C语言实现,请加我Q扣:1273623966(验证信息请填bootloader),欢迎咨询或定制bootloader(在线升级程序)。LIN总线是汽车ECU使用比较多的一种总线,车灯,车门,汽车空调控制面板等等ECU都有在使用.而这些ECU离线升级时,就需要使用到LINbootloader,O......
  • SpringBoot 配置多数据源 dynamic-datasource(多库)
    1.Maven包com.baomidoudynamic-datasource-spring-boot-starter3.1.12.配置文件###MySQLdruid多数据源配置(纯粹多库)####去除durid配置spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure#指定默认数据源(必须配置)spring.d......
  • spring boot 多数据源切换(dynamic-datasource-spring-boot-starter)
    官网 https://dynamic-datasource.com/guide/集成MybatisPlus https://dynamic-datasource.com/guide/integration/MybatisPlus.html#基础介绍自动读写分离 https://dynamic-datasource.com/guide/advance/Read-Write-Separation.html本地事物(不支持spring事务),使用@DSTransac......
  • JDWP调试SpringBoot程序
    JDWP调试SpringBoot程序<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-loader</artifactId></dependency>java-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5050-jar&......
  • Springboot+Echarts+Element(二)
    今天主要是记录一些问题,主要是在使用vue通过axios发送请求的时候,起初我认为需要把vue和springboot整合到一块但是在听完课之后发现并不需要,因为vue的目的是实现前后端分离的开发,因此两个项目可以同时运行,调整vue项目就是改前端代码,调整springboot就是改后端代码,前端只负责发送请......