(1)SpringBoot入门+彩蛋

SpringBoot

官网(中文):Spring Boot 中文文档

Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效。

简介:

Spring Boot帮助你创建可以运行的独立的、基于Spring的生产级应用程序。 我们对Spring平台和第三方库采取了有主见的观点,这样你就能以最少的麻烦开始工作。 大多数Spring Boot应用程序只需要很少的Spring配置。

你可以使用Spring Boot来创建Java应用程序,可以通过使用 java -jar 或更传统的war部署来启动。

我们的主要目标是。

  • 为所有的Spring开发提供一个根本性的更快、更广泛的入门体验。
  • 开箱即用,但随着需求开始偏离默认值,请迅速摆脱困境。
  • 提供一系列大类项目常见的非功能特性(如嵌入式服务器、安全、度量、健康检查和外部化配置)。
  • 绝对没有代码生成(当不以原生镜像为目标时),也不要求XML配置。

系统要求:

Spring Boot 3.2.0-SNAPSHOT 需要 Java 17 ,并且可以兼容到Java 20,包括Java 20。还需要 Spring Framework 6.1.0-M1 或以上版本。

为以下构建工具提供了明确的构建支持。

构建工具版本
Maven3.6.3 及其以上
Gradle7.x (7.5 及其以上) 和 8.x

2.1. Servlet 容器

Spring Boot支持以下嵌入式Servlet容器。

Servlet 容器Servlet 版本
Tomcat 10.05.0
Jetty 11.05.1
Undertow 2.2 (Jakarta EE 9 variant)5.0

你也可以将Spring Boot应用部署到任何兼容Servlet 5.0+的容器中。

2.2. GraalVM 原生镜像

Spring Boot应用程序可以通过使用 GraalVM 22.3 或以上版本 转换为原生镜像。

镜像可以通过 本地构建工具 Gradle/Maven插件或GraalVM提供的 native-image 工具来创建。你也可以使用 native-image Paketo buildpack 来创建原生镜像。

支持以下版本。

名称版本
GraalVM Community22.3
Native Build Tools0.9.23

微服务

微服务架构——马丁弗勒(中文版论文完整版)_马丁福勒微服务论文-CSDN博客

可以研读一下这位大佬的论文,了解一下微服务的理论,将来作为装x的谈资。

第一个springBoot项目

方法一

创建第一个springBoot项目,首先从官网下手。

Spring | Home

image-20250125233937534

选择SpringBoot

image-20250125234153425

reference代表参考文档,API可以参看项目中的依赖。

image-20250125234217826

image-20250125234952854

点击下面的的FENERATE按钮就可以下载到一个压缩包,解压并在idea中打开,就可以启动项目。

方法二

直接在idea中创建

image-20250126125950804

如果sdk和java的版本选择的不一致,在运行项目时会报错

无效的源发行版 (版本号)

image-20250126130159802

springBoot版本要选择官网上显示的稳定版本;

image-20250126130357320

在这里我们可能发现我们的maven爆红,这个可能是因为maven的镜像资源问题在maven文件夹的setting.xml文件中添加正确的镜像才能成功下载到全部依赖,作者在这里因为用了一个半正确的镜像,项目能够运行但是maven一直爆红,尝试了一段时间才发现是镜像的问题

<!-- 阿里镜像 -->
<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
    <id>central</id>
    <name>Maven Repository Switchboard</name>
    <url>http://repo1.maven.org/maven2/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
    <id>repo2</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
    <id>ibiblio</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
    <id>jboss-public-repository-group</id>
    <mirrorOf>central</mirrorOf>
    <name>JBoss Public Repository Group</name>
    <url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
    <id>google-maven-central</id>
    <name>Google Maven Central</name>
    <url>https://maven-central.storage.googleapis.com
    </url>
    <mirrorOf>central</mirrorOf>
</mirror>
<!-- 中央仓库在中国的镜像 -->
<mirror>
    <id>maven.net.cn</id>
    <name>oneof the central mirrors in china</name>
    <url>http://maven.net.cn/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

注意建包时的目录结构我们首先写一个Controller

package com.kang.start.Controller;

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

@RestController
public class startController {
    @RequestMapping("/start")
    public String start(){
        return "Hello world";
    }
}

在Application中点击运行

image-20250126130538137

image-20250126130600739

成功运行,访问http://localhost:8080/start

image-20250126130651378

成功运行,下面介绍一下这个架构的组成

首先从我们最熟悉的pom.xml文件下手

image-20250126201640837

image-20250126204158265

现在我们的Tomcat是内嵌在项目中的我们在用maven打包以后会得到一个jar包,我们点击jar包就可以直接运行,在浏览器中访问我们创建的项目。

当然这个jar包运行起来以后不容易关闭我们可以在命令行输入

netstat -aon | findstr :8080

查看那个程序在使用端口,然后关闭它

taskkill /PID 19160 /F

image-20250126205243835

学习一些简单的配置比如说:端口的配置

image-20250126211338192

我们还可以自定义banner,推荐一个网站找banner,有点卡,可能访问花的时间长一点;

使用方法:在这个网站自定义或者在库里面搜索

Spring Boot banner在线生成工具,制作下载中文banner.txt,修改替换banner.txt文字实现自定义中文ascii,个性化启动banner-bootschool.net

image-20250126223054163

将得到的内容放到banner.txt文件中。启动的时候就会出现自定义的banner

       #
        #         #############
  #############         #
  #     #               #
  # #########           #
  #     #   #           #
  #############         #
  #     #   #     #############
  # #########           #
  # #   #               #
  #  #  ##   #          #
  #   # # # #           #
 #   #  #  #            #
 #  #   #   #           #
#  #  # #    #   ###############
       #

效果:

image-20250126223913841

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PydanticAI应用实战

PydanticAI 是一个 Python Agent 框架,旨在简化使用生成式 AI 构建生产级应用程序的过程。 它由 Pydantic 团队构建,该团队也开发了 Pydantic —— 一个在许多 Python LLM 生态系统中广泛使用的验证库。PydanticAI 的目标是为生成式 AI 应用开发带来类似 FastAPI 的体验,它基…

面向对象编程简史

注&#xff1a;本文为 “面向对象编程简史” 相关文章合辑。 英文引文&#xff0c;机翻未校。 Brief history of Object-Oriented Programming 面向对象编程简史 Tue, May 14, 2024 Throughout its history, object-oriented programming (OOP) has undergone significant …

四层网络模型

互联网由终端主机、链路和路由器组成&#xff0c;数据通过逐跳的方式&#xff0c;依次经过每条链路进行传输。 网络层的工作是将数据包从源端到目的端&#xff0c;跨越整个互联网。 网络层的数据包称为数据报。网络将数据报交给链路层&#xff0c;指示它通过第一条链路发送数据…

Linux探秘坊-------4.进度条小程序

1.缓冲区 #include <stdio.h> int main() {printf("hello bite!");sleep(2);return 0; }执行此代码后&#xff0c;会 先停顿两秒&#xff0c;再打印出hello bite&#xff0c;但是明明打印在sleep前面&#xff0c;为什么会后打印呢&#xff1f; 因为&#xff…

当AI学会“顿悟”:DeepSeek-R1如何用强化学习突破推理边界?

开篇&#xff1a;一场AI的“青春期叛逆” 你有没有想过&#xff0c;AI模型在学会“推理”之前&#xff0c;可能也经历过一段“中二时期”&#xff1f;比如&#xff0c;解题时乱写一通、语言混搭、答案藏在火星文里……最近&#xff0c;一支名为DeepSeek-AI的团队&#xff0c;就…

学习数据结构(1)时间复杂度

1.数据结构和算法 &#xff08;1&#xff09;数据结构是计算机存储、组织数据的方式&#xff0c;指相互之间存在⼀种或多种特定关系的数据元素的集合 &#xff08;2&#xff09;算法就是定义良好的计算过程&#xff0c;取一个或一组的值为输入&#xff0c;并产生出一个或一组…

mock可视化生成前端代码

介绍&#xff1a;mock是我们前后端分离的必要一环、ts、axios编写起来也很麻烦。我们就可以使用以下插件&#xff0c;来解决我们的问题。目前支持vite和webpack。&#xff08;配置超级简单&#xff01;&#xff09; 欢迎小伙伴们提issues、我们共建。提升我们的开发体验。 vi…

http的请求体各项解析

一、前言 做Java开发的人员都知道&#xff0c;其实我们很多时候不单单在写Java程序。做的各种各样的系统&#xff0c;不管是PC的 还是移动端的&#xff0c;还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言&#xff0c;再做业务开发时&#…

基于微信小程序的移动学习平台的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Java集合学习:HashMap的原理

一、HashMap里的Hash是什么&#xff1f; 首先&#xff0c;我们先要搞清楚HashMap里的的Hash是啥意思。 当我们在编程过程中&#xff0c;往往需要对线性表进行查找操作。 在顺序表中查找时&#xff0c;需要从表头开始&#xff0c;依次遍历比较a[i]与key的值是否相等&#xff…

ReactNative react-devtools 夜神模拟器连调

目录 一、安装react-devtools 二、在package.json中配置启动项 三、联动 一、安装react-devtools yarn add react-devtools5.3.1 -D 这里选择5.3.1版本&#xff0c;因为高版本可能与夜神模拟器无法联动&#xff0c;导致部分功能无法正常使用。 二、在package.json中配置启…

【MySQL】 数据类型

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;【MySQL】 数据类型 发布时间&#xff1a;2025.1.27 隶属专栏&#xff1a;MySQL 目录 数据类型分类数值类型tinyint类型数值越界测试结果说明 bit类型基本语法使用注意事项 小数类型float语法使用注意事项 decimal语…

c++ 定点 new

&#xff08;1&#xff09; 代码距离&#xff1a; #include <new> // 需要包含这个头文件 #include <iostream>int main() {char buffer[sizeof(int)]; // 分配一个足够大的字符数组作为内存池int* p new(&buffer) int(42); // 使用 placement new…

实验一---典型环节及其阶跃响应---自动控制原理实验课

一 实验目的 1.掌握典型环节阶跃响应分析的基本原理和一般方法。 2. 掌握MATLAB编程分析阶跃响应方法。 二 实验仪器 1. 计算机 2. MATLAB软件 三 实验内容及步骤 利用MATLAB中Simulink模块构建下述典型一阶系统的模拟电路并测量其在阶跃响应。 1.比例环节的模拟电路 提…

Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴

目录 背景 解决gpedit.msc打不开 解决复制粘贴 剪贴板的问题 启用远程桌面剪贴板与驱动器 重启RDP剪贴板监视程序 以上都不行&#xff1f;可能是操作被Win11系统阻止 最后 背景 远程桌面无法复制粘贴&#xff0c;需要查看下主机策略组设置&#xff0c;结果按WinR输入…

一文读懂DeepSeek-R1论文

目录 论文总结 摘要 1. 引言 1.1. 贡献 1.2. 评估结果总结 2. 方法 2.1. 概述 2.2. DeepSeek-R1-Zero&#xff1a;在基础模型上进行强化学习 2.2.1. 强化学习算法 2.2.2. 奖励建模 2.2.3. 训练模板 2.2.4. DeepSeek-R1-Zero 的性能、自我进化过程和顿悟时刻 2.3. …

如何把obsidian的md文档导出成图片,并加上文档属性

上篇关于这个插件PKMer_Obsidian 插件&#xff1a;Export Image plugin 一键将笔记转换为图片分享的文章 如何把obsidian的md文档导出成图片&#xff0c;并加上水印-CSDN博客 如何导出图片的时候让文档属性也显示出来&#xff0c;啊啊&#xff0c;这个功能找了一晚上&#xf…

【javaweb项目idea版】蛋糕商城(可复用成其他商城项目)

该项目虽然是蛋糕商城项目&#xff0c;但是可以复用成其他商城项目或者购物车项目 想要源码的uu可点赞后私聊 技术栈 主要为&#xff1a;javawebservletmvcc3p0idea运行 功能模块 主要分为用户模块和后台管理员模块 具有商城购物的完整功能 基础模块 登录注册个人信息编辑…

pycharm(2)

conda 我下载安装conda的时候产生了各种问题&#xff0c;最终我发现&#xff0c;打开杀毒软件会有阻碍 cuda的版本问题很大&#xff0c;我尝试多个版本之后&#xff0c;发现anaconda3-2024.06.1-windows-x86_64安装了之后不会报错&#xff0c;另外pycharm的版本也一直有问题&a…

【数组OJ】两数之和

两数之和 题目 思路 暴力枚举&#xff1a;逐一遍历&#xff0c;将当前数与之后的数个个相加、判断其相加后是否等于target 代码实现 /*** Note: The returned array must be malloced, assume caller calls free().*///暴力枚举&#xff1a; int* twoSum(int* nums, int nu…