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

SpringBoot入门笔记

本文是看黑马老师讲课视频学习笔记整理

目录

入门案例

基于IDEA联网

基于Springboot官网创建

基于阿里云创建项目

手工创建

隐藏文件 

入门案例解析:

parent​编辑

starter

引导类

内嵌tomcat


入门案例

基于IDEA联网

@RestController
@RequestMapping("/books")
public class BookController {@GetMappingpublic String getById(){System.out.println("springboot is running");return "springboot is running";}}

下面来看一个错误示例(其实就是第一次创搞错了): 

这种结构导致接口路径未正确映射。要确保接口类位于控制器类和启动类(@SpringBootApplication注解)的同包或子包下,以确保自动解析 

这样才正确

然后运行Days3ApplicationTests

SpringBoot程序要基于jdk8进行使用 


Spring程序与SpringBoot程序对比

基于 idea 开发 SpringBoot 程序需要确保联网且能够加载到程序框架结构

基于Springboot官网创建

https://start.spring.io/

点击CTRL+回车选项下载

@RestController
@RequestMapping("/books")
public class BookController {@GetMappingpublic String getById(){System.out.println("springboot is running");return "springboot is running...2";}}


基于阿里云创建项目

https://start.aliyun.com

同理

@RestController
@RequestMapping("/books")
public class BookController {@GetMappingpublic String getById(){System.out.println("springboot is running3");return "springboot is running...3";}}


手工创建

Days_05是普通maven工程

这时候把Days3的pom.xml文件中的<parent>和<dependency>复制过去

 

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


隐藏文件 

不想看到的文件点+号输入文件格式即可


入门案例解析:

parent


starter

SpringBoot 中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到 减少依赖配置 的目的

比如原来写了7/8个依赖,现在写一个就行。

实际开发:

1.使用任意坐标时,仅书写 GAV 中的 G A V SpringBoot 提供,除非 SpringBoot 未提供对应版本 V
2.  如发生坐标错误,再指定 Version (要小心版本冲突)

引导类

@SpringBootApplication
public class Days3Application {public static void main(String[] args) {ConfigurableApplicationContext context= SpringApplication.run(Days3Application.class, args);BookController bean=context.getBean(BookController.class);System.out.println("bean======>"+bean);User user=context.getBean(User.class);System.out.println(user);}}
import org.springframework.stereotype.Component;@Component
public class User {
}

其实SpringApplication.run(Days3Application.class, args);是启动了一个Spring容器,我们定义的bean可以加载进去.

  • SpringBoot 的引导类是 Boot 工程的执行入口,运行 main 方法就可以启动项目
  •   SpringBoot 工程运行后初始化 Spring 容器,扫描引导类所在包加载 bean

内嵌tomcat

使用 maven 依赖管理变更起步依赖项
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--web起步依赖环境中,排除Tomcat起步依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加Jetty起步依赖,版本由SpringBoot的starter控制-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>

内置服务器

  • tomcat( 默认) apache 出品,粉丝多, 应用面广 ,负载了若干较重的组件
  • undertow    undertow ,负载性能 勉强 跑赢 tomcat
  • jetty  更轻量级 ,负载性能远不及 tomcat 
    1. 内嵌 Tomcat 服务器是 SpringBoot 辅助功能之一
    2.  内嵌 Tomcat 工作原理是将 Tomcat 服务器作为对象运行,并
      将该对象交给 Spring 容器管理
    3.  变更内嵌服务器思想是去除现有服务器,添加全新的服务

相关文章:

SpringBoot入门笔记

本文是看黑马老师讲课视频学习笔记整理 目录 入门案例 基于IDEA联网 基于Springboot官网创建 基于阿里云创建项目 手工创建 隐藏文件 入门案例解析: parent​编辑 starter 引导类 内嵌tomcat 入门案例 基于IDEA联网 RestController RequestMapping("/books&…...

python 华为od 单词接龙

sd[word,dd,da,dc,dword,d] # 计算出下一个接龙单词 def jl(sd,st):# sd.remove(st)sd list(set(sd))sends list(st)[-1]lg []sd.sort()for i in sd:if i.startswith(sends):lg.append((i, len(i)))if lg[]:return 0,0lg.sort(keylambda x: x[1],reverseTrue)maxlen lg[0][…...

Vue+Echart实现地图省市区三级下钻

采用在线地图数据&#xff0c;整体简约&#xff0c;扩展也方便 参考 <template><div><div ref"mapContainer" style"width: 100%; height: 600px;"></div><button click"goBack">返回上一级</button></…...

Apache Tomcat 信息泄露漏洞排查处理CVE-2024-21733)

一、漏洞描述 Apache Tomcat作为一个流行的开源Web服务器和Java Servlet容器并用于很多中小型项目的开发中。其中,Coyote作为Tomcat的连接器组件,是Tomcat服务器提供的供客户端访问的外部接口,客户端通过Coyote与服务器建立链接、发送请求并且接收响应。 近日发现Apache To…...

51单片机-LED实验

实现了按下独立按键&#xff0c;LED灯亮&#xff0c;松开独立按键&#xff0c;LED灯灭的功能 #include <8051.h>void delayms(unsigned char t){unsigned char i,j;i900;jt;do{jt;while (j--){/* code */}}while(i--); }void main(){// P2_01;while (1){if(P3_00){delay…...

无人机开启农林植保新篇章

嘿&#xff0c;小伙伴们&#xff0c;你们知道吗&#xff1f;无人机已经悄悄在农业领域大展拳脚&#xff0c;成为现代农业的“黑科技”新宠儿啦&#xff01; 想象一下&#xff0c;广袤的田野上空&#xff0c;无人机如同勤劳的蜜蜂&#xff0c;精准高效地完成着各项任务&#xff…...

第N4周:NLP中的文本嵌入

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 任务要求&#xff1a;加载第N1周的.txt文件&#xff0c;使用Embeddingbag与Embedding完成词嵌入 第N1周的.txt文件的名称为“任务文件.txt”&#xff0c;内容为&#xff1a; 比较直观的编码方式是采用上…...

C++高精度减法

高精度减法其实跟加法差不多&#xff0c;首先就是需要逆序存入整数数组&#xff0c;其次就是做运算&#xff0c;最后就是删除前导0逆序输出。 不过在做高精度减法需要考虑一下两个数的关系是有三种的&#xff0c;a>b,a<b ab;思考全面咱们的程序才能拿满分。 以下是完整…...

protobuf cmakelist,msvc utf-8设置

源字符集和执行字符集 源字符集指的是cpp文件中字符串的编码方式 执行字符集指的是exe文件中字符串的编码方式 msvc编译器设置的命令行参数 /source-charset:utf-8 /execution-charset:utf-8 cmake中设置 add_compile_options(“ < < <<CXX_COMPILER_ID:MSVC>…...

Haproxy讲解

Haproxy: haproxy是一个开源的高性能反向代理和负载均衡器&#xff0c;主要用于‌TCP和‌HTTP流量管理。 功能和特点&#xff1a;haproxy能够处理大量的并发连接&#xff0c;支持TCP和HTTP协议&#xff0c;具有高可用性和负载均衡功能。它特别适用于需要处理大量流量的网站&am…...

K8S系列——一、Ubuntu上安装Helm

在使用K8S搭建集群服务时&#xff0c;有时候需要用到Helm&#xff08;一个用于Kubernetes应用管理的工具&#xff09;&#xff0c;下面是在Ubuntu上安装Helm的过程。 1.更新系统软件包列表 sudo apt-get update2.安装必要的依赖项 sudo apt-get install apt-transport-https…...

排序: 插入\希尔\选择\归并\冒泡\快速\堆排序实现

1.排序的概念及应用 1.1概念 排序:所谓排序&#xff0c;就是一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 1.2运用 购物筛选排序&#xff1a; 1.3常见排序算法 2.实现常见的排序算法 int a[ {5,3,9,6,2,4,7,1,8}; 2…...

OpenCV图像处理——按最小外接矩形剪切图像处理ROI后映射回原图像

引言 在图像处理过程中&#xff0c;提取感兴趣区域&#xff08;ROI&#xff09;并在其上进行处理后&#xff0c;往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤&#xff1a; 找到最小外接矩形&#xff1a;使用 cv::boundingRect 或 cv::minAreaRect 提取感兴…...

Linux中以单容器部署Nginx+ASP.NET Core

强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器&#xff0c;本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程。 Nginx->ASP.NET Coe部署架构容器化 在Docker中部署Nginx--->ASP.NETCore 有两种选择&#xff0c; 第一种是在单容器…...

【秋招笔试】8.11大疆秋招(第三套)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…...

标题:打造编程学习的知识宝库:高效笔记记录与整理

标题&#xff1a;打造编程学习的知识宝库&#xff1a;高效笔记记录与整理 在编程学习的征途中&#xff0c;有效的笔记记录和整理技巧对于掌握和回顾知识点至关重要。本文将从笔记工具选择、笔记结构设计、以及实践与复习策略三个方面&#xff0c;探讨如何高效地记录并整理编程…...

【Rust光年纪】Rust 官方提供的关键工具概览:代码检查、格式化和依赖管理

提升 Rust 项目质量和安全性&#xff1a;掌握官方工具的核心功能和使用方法 前言 Rust 作为一种系统编程语言&#xff0c;拥有强大的性能和内存安全特性。然而&#xff0c;随着项目规模增长&#xff0c;代码检查、格式化和依赖管理等工作变得更加重要。因此&#xff0c;Rust …...

【Python学习-UI界面】PyQt5 小部件8-QSlider 数值滑动

样式如下: QSlider 类对象为用户提供一个沟槽&#xff0c;可以在其上移动一个手柄。 它是一个经典的小部件&#xff0c;用于控制有界值。 手柄在沟槽上的位置相当于控件的下限和上限之间的整数。 常用方法如下&#xff1a; 序号方法描述1setMinimum设置滑块的最小值2setMax…...

MapReduce入门教程

这可不是目录 入门定义与说明数据分析Map和Reduce阶段的任务<Kn,Vn>分析MapReduce的数据类型其他说明(持续更新) 开发案例(持续更新)自定义的wordcountcsv文件操作序列化操作 入门 定义与说明 数据分析 以下未数据分析示意图 Map和Reduce阶段的任务 Map阶段的任务&a…...

JDBC1 Mysql驱动,连接数据库

JDBC 一、JDBC Java Database Connectivity&#xff1a;Java访问数据库的解决方案 JDBC定义了一套标准接口&#xff0c;即访问数据库的通用API&#xff0c; 不同的数据库厂商根据各自数据库的特点去实现这些接口。 JDBC希望用相同的方式访问不同的数据库&#xff0c;让具体的…...

Dify私有化部署实战:如何在企业内网快速搭建AI开发平台(含Docker镜像打包技巧)

Dify私有化部署实战&#xff1a;企业内网AI开发平台搭建全攻略 1. 企业内网部署Dify的核心价值与挑战 在数字化转型浪潮中&#xff0c;越来越多的企业开始将AI能力纳入核心业务系统。Dify作为开源的大语言模型应用开发平台&#xff0c;其私有化部署方案尤其适合对数据安全有严…...

Phi-4-Reasoning-Vision基础教程:双卡4090环境安装、镜像拉取与端口映射

Phi-4-Reasoning-Vision基础教程&#xff1a;双卡4090环境安装、镜像拉取与端口映射 1. 环境准备与快速部署 在开始之前&#xff0c;请确保您的系统满足以下要求&#xff1a; 硬件配置&#xff1a;至少两张NVIDIA RTX 4090显卡&#xff08;24GB显存&#xff09;软件环境&…...

all-MiniLM-L6-v2实战教程:用Python快速实现文本聚类分析

all-MiniLM-L6-v2实战教程&#xff1a;用Python快速实现文本聚类分析 1. 引言&#xff1a;为什么选择all-MiniLM-L6-v2 文本聚类是自然语言处理中的基础任务&#xff0c;它能帮助我们发现海量文本中的隐藏模式。传统方法如TF-IDF或词袋模型往往难以捕捉语义信息&#xff0c;而…...

SubtitleOCR:重新定义视频内容处理效率的硬字幕提取革命

SubtitleOCR&#xff1a;重新定义视频内容处理效率的硬字幕提取革命 【免费下载链接】SubtitleOCR 快如闪电的硬字幕提取工具。仅需苹果M1芯片或英伟达3060显卡即可达到10倍速提取。A very fast tool for video hardcode subtitle extraction 项目地址: https://gitcode.com/…...

Avalonia跨平台开发踩坑记:我的第一个带最小化/关闭按钮的MVVM应用

Avalonia跨平台开发实战&#xff1a;从零构建MVVM窗口控制应用 第一次接触Avalonia时&#xff0c;我被它"一次编写&#xff0c;多平台运行"的承诺所吸引。作为一个长期使用WPF的开发者&#xff0c;跨平台桌面应用开发一直是个痛点。但当我真正开始用Avalonia实现一个…...

PingFangSC 字体技术深度解析:现代Web字体架构实践指南

PingFangSC 字体技术深度解析&#xff1a;现代Web字体架构实践指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC PingFangSC&#xff08;苹方-简&#…...

OpCore-Simplify终极指南:零代码自动化黑苹果EFI配置实战

OpCore-Simplify终极指南&#xff1a;零代码自动化黑苹果EFI配置实战 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在macOS生态之外构建黑苹果系统&…...

算法基础篇(11)Floyd算法

Floyd算法本质是动态规划&#xff0c;用来求任意两点之间的最短路&#xff0c;也称为插点法。通过不断在两点之间加入新的点来更新最短路。1、状态表示&#xff1a;f[k][i][j]表示&#xff1a;仅仅经过1~k这些点&#xff0c;结点i走到结点j的最短路径的长度。2、状态转移方程&a…...

OpCore-Simplify:零基础黑苹果配置终极指南,5分钟搞定复杂EFI

OpCore-Simplify&#xff1a;零基础黑苹果配置终极指南&#xff0c;5分钟搞定复杂EFI 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为黑苹果配置…...

3月17枚举

package com.fangfa.day05.Enum;public class EnurmerDemo1 {public static void main(String[] args) {//为什么其他类里可以类名.对象名 因为这个对象名被static修饰了//若不修饰不行System.out.println(Season.SPRING);} } class Season{/*** Description* author Mao Ree…...