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

(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


http://www.kler.cn/a/522065.html

相关文章:

  • 2024年个人总结
  • Airflow:精通Airflow任务依赖
  • DeepSeek LLM解读
  • 周末总结(2024/01/25)
  • JVM对象分配内存如何保证线程安全?
  • 图片上传实现图片预览的功能
  • JavaSE第十一天——集合框架Collection
  • java —— 面向对象(下)
  • 【数据结构】(2)时间、空间复杂度
  • 学习yosys(一款开源综合器)
  • 一文掌握ADB的安装及使用
  • 【全栈】SprintBoot+vue3迷你商城(9)
  • 线程配置经验
  • 一元函数微积分的几何应用:二维平面光滑曲线的曲率公式
  • 苍穹外卖 项目记录 day09 历史订单
  • arkui-x 前端布局编码模板
  • 详解Redis之事务
  • 深度解析:MyBatis-Plus实现分页查询的封装!
  • Meta 计划 2025 年投资 650 亿美元推动 AI 发展
  • mysql DDL可重入讨论
  • 面试题-Java集合框架
  • 【C++高并发服务器WebServer】-9:多线程开发
  • 图形编辑器基于Paper.js教程22:在图形矢量编辑器中,实现两个元素的差集,交集,并集,切割
  • 若依基本使用及改造记录
  • 【C++】0xc0000005写入位置时发生访问冲突解决方法
  • 基于51单片机和ESP8266(01S)、LCD1602、DS1302、独立按键的WiFi时钟