Spring Boot[概述、功能、快速入门]

news2024/12/22 16:28:17

系列文章目录

从今天开始,将会发关于SpringBoot的内容,持续更新基础篇、高级篇(查看源码部分)。今天是第一天,我们来了解SpringBoot和快速创建SpringBoot项目。

该系列文章会持续更新~


目录

系列文章目录

前言

一、Spring Boot概述

二、Spring Boot功能

1.自动配置

2.起步依赖

3.辅助功能

三、Spring Boot快速入门

1.创建一个Maven项目

2.导入Spring Boot起步依赖

3.定义Controller

4.编写引导类

5.启动测试


前言

从今天开始,将会发关于SpringBoot的内容,持续更新基础篇、高级篇(查看源码部分)。今天是第一天,我们来了解SpringBoot和快速创建SpringBoot项目。


一、Spring Boot概述

1. SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用搭建和开发过程的一种框架;
2. SpringBoot完成了对各种框架的整合,让这些框架集成在一起变得更加简单,简化了我们在集成过程中繁琐的模板化配置;
3. 从最根本上来讲,Spring Boot是一个启动Spring项目的工具,是一些库的集合;
4. SpringBoot不是一个全新的框架,也不是Spring解决方案的替代品,而是对Spring框架的一个封装。所以,以前Spring可以做的事情,现在用SpringBoot都可以做;
5. 一般情况下,一个SpringBoot应用 = 一个微服务 = 一个模块 = 一个有边界的上下文;
6. SpringBoot是整合Spring技术栈的一站式框架,是简化Spring技术栈的快速开发脚手架,是一个能够快速构建生产级别的Spring应用的工具。

具体详细内容请到官网Spring | Home

二、Spring Boot功能

1.自动配置

SpringBoot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪一个,不该用哪个。该过程是SpringBoot自动完成的。

2.起步依赖

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。

简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

3.辅助功能

提供了一些大型项目中常见的非功能性特性,如嵌入式服务器(不用像Spring一样配Tomcat)、安全、指标、健康检测、外部配置等。

注:Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。

三、Spring Boot快速入门

1.创建一个Maven项目

第一步,新建一个Maven项目,如下图所示。项目名称我这里叫springboot-helloworld.

创建成功后如下图所示,会自动打开pom.xml文件。

 

2.导入Spring Boot起步依赖

首先要找到官方的Spring Boot文档,我这里找的中文文档,文档链接Spring Boot 中文文档 参考手册 中文版

在文档中找到Maven项目需要导入的依赖,去下图所示: 

 将上述红色框内的坐标cv到你的pom.xml文件中。其中的坐标一个是springboot工程需要继承的父工程、一个是web开发的起步依赖。具体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>springboot-helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <!-- springboot工程需要继承的父工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <!-- web开发的起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

3.定义Controller

在java包下创建com.imust.controller包,在controller包下创建HelloController类,在该类下编写如下代码:

package com.imust.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        return "Hello,Spring Boot!";
    }
}

4.编写引导类

在com.imust包下创建引导类MyApplication(名字可以随便起,但都要以Application结尾)

在该类下编写代码,如下: 

package com.imust;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * 引导类  Spring Boot项目的入口
 * */
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class,args);
    }
}

5.启动测试

点击引导类的运行按钮即可启动项目。运行成功后,控制台会提示默认配置的为8080端口,我们到浏览器访问这个端口就可以。

在浏览器中输入下图地址,就会出现我们编写的Controller中的Hello,Spring Boot!.


  

总结

这就是本次的Spring Boot的快速入门,了解Spring Boot后能够快速的创建一个自己的Spring Boot项目,注意大家在学习之前先要去学习SSM框架,这些会了之后学Spring Boot会更加的理解和顺手哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在国内用Windows给BT做种,真是一山绕过一山缠(附解决方案)

国内的网盘&#xff0c;动不动就乱删东西&#xff0c;实在是狗的不像样子&#xff0c;于是我有了玩一下BT&#xff08;俗称 比特洪流&#xff0c;种子&#xff09;的想法。 BT技术的玩法是&#xff0c;我有一份资源&#xff0c;制作一个种子&#xff0c;然后分享这个种子&#…

【1.2】认识微服务--微服务技术对比SpringCloud

认识微服务--微服务技术对比&SpringCloud微服务结构微服务技术对比DubboSpringCloudSpringCloudAlibaba企业需求SpringCloud知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。 微服务结构 微服务这种方案需要技术框架来落地…

如何用电脑录制视频?图文教学,快速学会

​与图片相比&#xff0c;视频可以更生动地表达信息。除了记录一些应用程序的内容外&#xff0c;有时我们还需要记录电脑桌面和录制视频。如何用电脑录制视频&#xff1f;本篇文章&#xff0c;将会以图文讲解的方式&#xff0c;教你如何用电脑录制视频。 电脑录制视频1&#xf…

第001课 - 项目介绍

文章目录 项目背景项目技术和特色项目前置要求分布式基础篇,就是快速开发一个电商的后台管理系统。 后端使用的技术栈,就是springboot+springcloud+mybatis+docker作为后端的基础环境。 结合前端的vue和elementui。 使用逆向工程的方式,快速帮助我们开发出来一个后台管理…

想入行软件测试不知道往哪个职业发展方向

现在关于软件测试领域的群体就有4种情况&#xff1a;‘低管理&#xff0c;低技术’ ‘低管理&#xff0c;高技术’ ‘高管理&#xff0c;低技术’ ‘高管理&#xff0c;高技术’ 好多人对自己测试的职业发展很迷茫&#xff0c;个人觉得这篇文章不错&#xff0c;转给大家分享下&…

数据可视化④:大学生就业可视化呈现

大学生就业是和我们息息相关的话题&#xff0c;每一位大学生都关注着&#xff0c;我们常常在网络上看到有关大学生就业的话题&#xff0c;比如毕业季的一些讨论。在大一的创新创业课中&#xff0c;我们也了解到自己所学的专业和以后如何就业&#xff0c;往哪方面就业。但我们了…

高校课程知识库系统|基于Springboot+vue实现高校课程知识库在线学校平台

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

前端常见问题汇总(九)

一、let ,const, var 有什么区别 用let声明变量&#xff0c;它的用法类似var&#xff0c;但是let所声明的变量&#xff0c;只在所在的代码块内有效 {let a 10 var b 1}console.log(a) //: a is not definedconsole.log(b) //1let const 不存在变量提升,规范代码&#xff08…

华尔街抢Web3商标!汇丰注册元宇宙虚拟信用卡、富达抢NFT市场

全球最大投行摩根大通&#xff08;JPMorgan&#xff09;在今年2月发布了一份元宇宙研究报告&#xff0c;指出元宇宙、Web3 经济在未来每年可创造1 兆美元的商机。 与此同时&#xff0c;摩根大通于今年2月15日成为首家进入元宇宙的银行&#xff0c;其在热门元宇宙平台Decentral…

企业数据上下云高速传输解决方案

国家大力发展数字经济&#xff0c;工信部将提供一批成本低、见效快、适用性强的数字化解决方案&#xff0c;让中小企业逐步将业务数据上云&#xff0c;实现高质量发展&#xff0c;数据上云则将成为趋势。 镭速传输便是提供这种数字化解决方案的一款软件&#xff0c;使用镭速的高…

C#,大数计算类Skyiv.BigInterger和任意精度算术运算的静态类BigArithmetic的C#源代码

尊重与诚信是软件发展的根本因素。 1、多年前 Skyivben 发布的大数计算的代码 本文的代码全部来自于 银河 的文章。 博客园——Skyivbenhttps://www.cnblogs.com/skyivben/ 因为 博客园 的格式问题&#xff0c;大家用起来不方便&#xff0c;因而作者稍微整理一下&#xff0c;…

程序员必学的编辑语法——Markdown

Markdown是一种纯文本格式的标记语言。通过简单的标记语法&#xff0c;它可以使普通文本内容具有一定的格式。能使博客笔记更易阅读。 优点:因为是纯文本&#xff0c;所以只要是支持Markdown的地方都能获得一样的编辑效果&#xff0c;可以让作者摆脱排版的困扰&#xff0c;专心…

激光雷达点云投影到前视图(附 python代码)

根据激光雷达的线束编号和水平角度(也可以通过计算得到),把点云投影到前视图,效果如下图: 球面投影推导过程 假设有一个m 线的旋转扫描式激光雷达,它的垂直视场角FOV 被分为上下两个部分:FOV_up 和FOV_down ,通常以FOV_up 的数值为正数而FOV_down 数值为负数…

webpack相关

1 简介 webpack 是一个静态模块打包器。入口js文件&#xff08;引入JQ、less等chunk块&#xff09;-->less转为css/es6转为es5-->打包后输出为bundle。1.1 五个核心概念 入口(Entry) 输出(Output) Loader &#xff1a;让 webpack 去处理那些非 JavaScript 文件 (webpack …

C++:STL:常用算法:遍历,查找,排序算法

概述&#xff1a; 算法主要是由头文件 <algorithm>&#xff0c;<functional>, <numeric> 组成。<algorithm> 是所有STL头文件中 最大的一个&#xff0c;范围涉及到&#xff1a;比较&#xff0c;交换&#xff0c;查找&#xff0c;遍历&#xff0c;复制…

JUC并发编程学习笔记(一)基本概念篇

1. 什么是 JUC 1.1 JUC 简介 在 Java 中&#xff0c;线程部分是一个重点&#xff0c;本篇文章说的 JUC 也是关于线程的。JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包&#xff0c;JDK 1.5 开始出现的。 1.2 进程与线程 进程&#xff08;Process…

第三章 网页中的表格和表单

表格的结构 <table barder"1"> cellspacing"0" <tr>#行 <td>单元格-</td> <td>单元格-</td> </tr> <tr> <td>单元格-</td> …

智能家居创意DIY-智能触摸面板开关

触摸开关&#xff0c;即通过触摸方式控制的墙壁开关&#xff0c;其感官场景如同我们的触屏手机&#xff0c;只需手指轻轻一点即可达到控制电器的目的&#xff0c;随着人们生活品质的提高&#xff0c;触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

解决vscode使用markdown无法预览网络图片

解决vscode使用markdown无法预览网络图片一、问题描述二、本机环境三、解决方案3.1 需要修改预览安全策略3.2 配置github 域名解析一、问题描述 使用vscode&#xff0c;在markdown的预览模式下无法预览网络图片 二、本机环境 该问题与电脑硬件以及操作系统环境无关。 本机m…

数据结构初阶:链式二叉树的遍历解析及一些基本操作

目录 前置说明 一、 二叉树的遍历&#xff08;理论&#xff09; 1. 二叉树的拆解 2. 二叉树的前序&#xff08;先根&#xff09;遍历 3. 二叉树的中序&#xff08;中根&#xff09;遍历 4. 二叉树的后序&#xff08;后根&#xff09;遍历 5. 二叉树的层序遍历 二、 代码实操…