当前位置: 首页 > news >正文

第一章 初识SpringBoot

目录

一、概述

二、原理初探

三、构建一个简单的SpringBoot应用

四、附带知识(yaml几种语法)


一、概述

        Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用开发和项目搭建过程。约定大于配置,化繁为简,解决了Spring应用配置繁琐和复杂的问题。

        我们在使用Spring Boot时只需要配置相应的Spring Boot依赖就可以用所有的Spring组件。SpringBoot底层已经为我们整合了很多优秀的框架和组件,不用我们自己手动的去写一堆xml配置然后进行配置。本质上讲,Spring Boot就是Spring,它做了那些本应我们去做的Spring Bean配置等工作。

        Spring Boot的主要特点:

  • 快速创建能够独立运行生产级别的Spring应用服务。

  • 直接嵌入服务器如Tomcat,Jetty等(无需部署WAR文件)

  • 提供大量的自动配置Spring和第三方库,开发者可以根据项目需求选择相关的起步依赖,快速集成到应用中,而无需手动配置大量的Spring配置文件,简化依赖管理,开箱即用,无代码生成。

  • 提供生产就绪型功能,如指标、健康检查、外部化配置。

  • Spring Boot与Spring Cloud等框架集成,为构建微服务提供了强大的支持,并通过Spring Cloud实现服务注册、负载均衡、熔断等功能。

二、原理初探

下图是SpringBoot底层从启动到结束的一个完整的过程:

下图是一个较为简单的SpringBoot构建的JavaWeb应用的启动和请求处理流程:

SpringBoot自动装配原理图:

三、构建一个简单的SpringBoot应用

一个简单的Spring Boot应用创建和运行示例,我们通过下图几个简单步骤即可生成一个完整的JavaWeb项目:

勾选Spring Web,项目中会依赖JavaWeb相关的各种依赖包和功能(包括不限于嵌入tomcat这类服务器)

上图中勾选SpringWeb后在pom.xml中自动添加的spring-boot-starter-web 依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

创建一个Controller:

import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloWorldController {@RequestMapping("/")public String index() {return "Hello, Spring Boot!";}}

项目创建好后会自动生成一个主应用类,通过启动这个类,我们就可以访问这个JavaWeb工程了:

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

以下是这个SpringBoot工程的全貌,其中banner.txt可以忽略,是我自己单独加的配置启动时的banner图像文件。

值得一提的是,SpringBoot在底层给我们自动配置了各种设定,所以我们可以通过配置文件来修改SpringBoot自动配置的默认值。其中SpringBoot提供了application.yml、application.yaml、application.properties三种类型的配置文件,推荐使用yml来进行配置。我们可以把下图中的application.properties删除,在该路径下创建application.yml即可。

语法结构:

        application.yml        key:空格value

        application.properties        key=value        

在主应用类的main方法中运行Spring Boot应用,它会启动嵌入式Tomcat服务器,默认端口为8080,打开浏览器访问 https://localhost:8080/,你将看到输出 "Hello, Spring Boot!"。

以上就是一个简单的Spring Boot应用的创建和运行过程。

四、附带知识(yaml几种语法)

通常我们会采用“对象”的写法

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 王者荣耀英雄检测数据集
  • QNX Hypervisor(十一)Linux Guest IPC 三
  • 命名空间————————
  • PMP--二模--解题--1-10
  • 2024.9.12(k8s环境搭建2)
  • postgresql-patroni高可用安装部署
  • 【Elasticsearch】-7.17.24版本接入
  • 自定义复杂AntV/G6案例
  • FreeRTOS学习——接口宏portmacro.h
  • 微波无源器件 功分器 4 一种用于天线阵列的紧凑宽带四路双极化波导功分器
  • 独立站技能树之建站33项自检清单 1.0丨出海笔记
  • 【STM32系统】基于STM32设计的SD卡数据读取与上位机显示系统(SDIO接口驱动、雷龙SD卡)——文末资料下载
  • golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
  • 虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(下)
  • 观成科技:新版suo5隧道工具加密流量跟踪分析
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [数据结构]链表的实现在PHP中
  • [译]CSS 居中(Center)方法大合集
  • Docker入门(二) - Dockerfile
  • Go 语言编译器的 //go: 详解
  • JavaScript新鲜事·第5期
  • PHP CLI应用的调试原理
  • python_bomb----数据类型总结
  • REST架构的思考
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Webpack 4 学习01(基础配置)
  • 大快搜索数据爬虫技术实例安装教学篇
  • 一文看透浏览器架构
  • 在Docker Swarm上部署Apache Storm:第1部分
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 1.Ext JS 建立web开发工程
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​补​充​经​纬​恒​润​一​面​
  • # wps必须要登录激活才能使用吗?
  • #ifdef 的技巧用法
  • (4)事件处理——(7)简单事件(Simple events)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (超详细)语音信号处理之特征提取
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (转)为C# Windows服务添加安装程序
  • (转载)(官方)UE4--图像编程----着色器开发
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .a文件和.so文件
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Net core 6.0 升8.0
  • .NET Core 版本不支持的问题
  • .NET MVC之AOP
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .NET和.COM和.CN域名区别
  • .pop ----remove 删除
  • [18] Opencv_CUDA应用之 基于颜色的对象检测与跟踪