创建第一个SpringBoot项目

在这里插入图片描述

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉
🍎个人主页:Leo的博客
💞当前专栏: 循序渐进学SpringBoot
✨特色专栏: MySQL学习
🥭本文内容:创建第一个SpringBoot项目
📚个人知识库 :知识库,欢迎大家访问

1.前言☕

大家好,我是Leo哥🫣🫣🫣,今天给大家带来关于精品SpringBoot专栏,暂且就给他起名为循序渐进学SpringBoot,这里我参考了我上一个专栏:循序渐进学SpringSecurity6。有需要的朋友可以抓紧学习来哈,带你从SpringSecurity从零到实战项目。好了,我们进入正题,为什么会有SpringBoot这个专栏呢,是这样的,今年Leo哥也是正在重塑知识体系,从基础到框架,而SpringBoot又是我们框架中的核心,我觉得很有必要通过以博客的形式将我的知识系列进行输出,同时也锻炼一下自己的写作能力,如果能帮到大家那就更好啦!!!本地系列教程会从SpringBoot基础讲起,会以知识点+实例+项目的学习模式由浅入深对Spring Boot框架进行学习&使用。好了,话不多说让我们开始吧😎😎😎。

2.创建SpringBoot项目的几种方式

创建SpringBoot项目可以通过两种方式:

  1. 通过访问:https://start.spring.io/,SpringBoot的官方网站进行创建SpringBoot项目;
  2. 通过工具(例如:IDEA)创建SpringBoot项目。

3.使用Spring Initializr创建项目

Spring 官方提供了 Spring Initializr 的方式来创建 Spring Boot 项目。网址如下:

https://start.spring.io/

打开后的界面如下:

image-20231212185422333

那具体什么是 Spring Initializr呢,简单来说,我们可以把它当成SpringBoot的初始化,他帮助我们快速构建出一个SpringBoot的项目骨架。

  1. Project: 这里其实就是项目的构建方式,一般分为Maven(安装Maven的方式)和Gradle(构建脚本基于 Groovy 或者 Kotlin 等语言来编写,而不是传统的 XML)。

  2. Language: 这里指的是项目的开发语言,我们这里选择Java就可以了。

  3. SpringBoot: 这里指的是SpringBoot的版本,这里我们使用SpringBoot3.x。

  4. Project Metada:

    • Group:项目所属组织的标识符,比如 org.javaatop;
    • Artifact:项目的标识符,比如说我这里的项目名为springboot-initializr;
    • Name:默认保持和 Artifact 一致即可;
    • Description: 项目的描述信息。
    • Package name:项目包名,根据Group和Artifact自动生成即可。
    • Packaging: 项目打包方式,可以选择 Jar 和 War,SpringBoot 时代默认 Jar 包即可,因为 SpringBoot 可以内置 Tomcat、Jetty、Undertow 等服务容器了。
    • Java:项目选用的 JDK 版本,选择 11 或者 8 就行。
  5. Dependency: 当然我们这里也可以通过右侧添加我们项目的依赖信息。

    image-20231212190606617

image-20231212190642346

然后点击底部的 generate 按钮,就会生成一个 Spring Boot 初始化项目的压缩包。

image-20231212190810448

然后把下面解压后的文件夹通过IDEA打开即可。

image-20231212191319045

4.使用IDEA创建项目

下面我们介绍第二种创建SpringBoot的方式。

image-20231212191453559

信息填好之后直接点击右下角create即可。

image-20231212191653339

因为我们是通过Maven的结构方式创建的,所以目录还不太完整,并没有启动类,所以需要我们手动配置。

首先删除不必要的Main方法,然后添加Maven依赖。

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

然后创建一个启动类,用你的模块名+ Application即可。

package org.javatop.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;

/**
 * @author : Leo
 * @version 1.0
 * @date 2023-12-12 19:19
 * @description : 启动类
 */
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class, args);
        Environment environment = context.getBean(Environment.class);

        System.out.println("访问链接:http://localhost:" + environment.getProperty("server.port"));
        System.out.println("(♥◠‿◠)ノ゙  项目启动成功 ლ(´ڡ`ლ)゙ \n");
    }
}		

下面我们来分析一下整合目录结构。

image-20231212192446650

  • src/main/java 为项目的开发目录,业务代码在这里写。
  • src/main/resources 为配置文件目录,静态文件、模板文件和配置文件都放在这里。
  • 子目录 static 用于存放静态资源文件,比如说 JS、CSS 图片等。
  • 子目录 templates 用于存放模板文件,比如说 thymeleaf 和 freemarker 文件。
  • src/test/java 为测试类文件目录。
  • pom.xml 用来管理项目的依赖和构建。

5.启动SpringBoot项目

启动SpringBoot项目,我们有两种方式。

你可以在启动类中右键进行启动。

image-20231212192720120

也可以通过services进行选中启动。

image-20231212192755773

在没有配置端口的情况下,默认会使用Tomcat的8080端口。

我们可以通过 http://localhost:8080/ 进行访问

image-20231212192953284

这里我们的第一个Web项目就已经成功了,只是我们这里并没有对应的controller,所以显示404页面,这里放到后面再讲。

5.源码仓库

Gitee源码仓库

6.文末推荐🍭

如果你是刚学完SSM框架,如果你想学系统的学习SpringBoot,如果你想使用SpringBoot去集成各种其他组件,那么我这份循序渐进学SpringBoot一定是首选,带你从零到深入学习SpringBoot。抓紧订阅起来吧。用知识点+案例+项目解读的学习模式由浅入深对Spring Boot框架进行学习&使用。

公众号封面

7.福利推荐🥇

7.1 介绍

image-20231212195113876

AI赋能运营全流程实操:文案写作+图片制作+社交媒体运营+爆款视频文案+私域推广+广告策划+电商平台高效运营。AI运营技巧大全+痛点解析,全面提高效率,让你弯道超车、轻松攀登运营之巅。

7.2 特色

超实用 通过80多个实战案例和操作技巧,使读者能够快速上手并灵活运用ChatGPT技术及提高运营能力。

巨全面 涵盖10多个新媒体领域,文案写作+图片制作+社交媒体运营+爆款视频文案+私域推广+广告策划+电商平台高效运营等。

真好懂 以通俗易懂的语言解释ChatGPT的原理及应用,轻松提高新媒体运营能力。

高回报 学习本书,全面提升运营能力,大大提高工作效率,促进职业发展,实现自我价值。

7.3 内容简介

本书从ChatGPT的基础知识讲起,针对运营工作中的各种痛点,结合实战案例,如文案写作、图片制作、社交媒体运营、爆款视频文案、私域推广、广告策划、电商平台高效运营等,手把手教你使用ChatGPT进行智能化工作。此外,还介绍了通过ChatGPT配合Midjourney、D-ID等AI软件的使用,进一步帮助提高运营工作的效率。

本书内容通俗易懂,案例丰富,实用性较强,特别适合想要掌握ChatGPT对话能力的读者和各行各业的运营人员,如互联网运营人员、自媒体运营人员、广告营销人员、电商运营人员等。 另外,本书也适合作为相关培训机构的教材使用。

7.4 购买链接

当当链接:http://product.dangdang.com/29623612.html

京东链接:https://item.jd.com/14141370.html

7.5 参与方式

🌟关注我的博客:关注我的博客,所有新鲜的博客文章和活动信息都不会错过。
📲添加博主wx:添加Leocisyam,如果添加不了,请私信博主。
💬参与方式:关注公众号程序员Leo或者文末扫码关注,回复抽奖,即可参与抽奖,记住要加Leo哥微信哈,方便通知。
🎁公布结果:2023年12月15日晚,我会亲自抽取2名幸运读者,并在微信私信通知,请大家注意查收哈。

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

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

相关文章

点评项目——好友关注模块

2023.12.12 本章实现好友关注模块&#xff0c;包含以下功能的实现&#xff1a;关注与取关、共同关注、关注推送。 关注与取关 当点击某个用户的主页时&#xff0c;会调用如下接口&#xff1a; 该接口是用来判断是否已经关注该用户&#xff0c;最后一个参数是该用户的i…

1,使用IDLE开启我们第一个Python程序

前面我们已经安装好了Python&#xff0c;安装了Python后&#xff0c;他会自动帮我们安装一个IDLE。IDLE是一个Python自带的非常简洁的集成开发环境&#xff08;IDE&#xff09;。他是一个Python Shell&#xff0c;我们可以利用Python Shell与Python交互。下面我们就利用IDLE开发…

如何学习网络安全

我们应该怎么学习网络安全 首先&#xff0c;必须&#xff08;时刻&#xff09;意识到你是在学习一门可以说是最难的课程&#xff0c;是网络专业领域的顶尖课程&#xff0c;不是什么人、随随便便就能学好的。不然&#xff0c;大家都是黑客&#xff0c;也就没有黑客和网络安全的概…

【玩转TableAgent数据智能分析】TableAgent全功能详解及多领域数据分析实践(中)不同领域数据分析实践

3 电影点评数据分析实践 利用本身自带的电影点评数据&#xff0c;来具体看一下TableAgent的分析能力&#xff0c;选择电影点评数据&#xff0c;智能体会自动导入该数据DMSC20000.csv&#xff0c;大小为3.3 MB。在数据信息展示区&#xff0c;就会显示出该数据&#xff0c;并提供…

C/C++,图算法——Dinic最大流量算法

1 文本格式 // C implementation of Dinics Algorithm #include<bits/stdc.h> using namespace std; // A structure to represent a edge between // two vertex struct Edge { int v; // Vertex v (or "to" vertex) // of a directed edge u…

微服务实战系列之通信

前言 掰个指头数一数&#xff0c;博主的“微服务实战系列”从无到有&#xff0c;从零走到了十五。如果比作时钟&#xff0c;刚好走过了一刻度。 当初为什么要做这个系列&#xff0c;博主想了又想&#xff0c;私以为作为当下软件领域的几个“hot spot”之一&#xff0c;又乘着…

urllib 的 get 请求和 post 请求(二)

目录 一、爬取网页、图片视频 二、请求对象的定制 三、get请求的urlencode方法 四、post 请求英文翻译 一、爬取网页、图片视频 目标&#xff1a;下载数据 知识点&#xff1a;urllib.request.urlretrieve()下载 使用urllib下载网页、图片和视频 下载网页&#xff1a; #…

六、ZGC深度剖析

一、引言 对于Java 程序员来说&#xff0c;JVM 帮助我们做了很多事情。 JVM是虚拟机&#xff0c;能够识别字节码&#xff0c;就是class文件或者你打包的jar文件&#xff0c;运行在操作系统上。 JVM帮我们实现了跨平台&#xff0c;你只需要编译一次&#xff0c;就可以在不同的…

traj_dist 笔记 源代码解析(python部分)

1distance.py 1.1 METRIC_DIC 不同实现方法对应的函数路径 1.2 sspd 功能&#xff1a; 计算轨迹 traj_1 和 traj_2 之间的对称化段路径距离。 参数&#xff1a; traj_1&#xff1a;一个二维 numpy 数组&#xff0c;代表第一个轨迹。traj_2&#xff1a;一个二维 numpy 数组…

FreeRTOS的三处栈空间设置分析

1、汇编启动代码中设置栈 这个栈空间只有300字节&#xff0c;是用于汇编启动代码早期&#xff0c;以及调用C语言的main函数&#xff08;创建任务等&#xff09;在创建好任务&#xff0c;启动调取器后&#xff0c;这个栈空间就被抛弃掉&#xff0c;后续不会使用到等调度器开启后…

星际飞船大战

欢迎来到程序小院 星际飞船大战 玩法&#xff1a;滑动鼠标控制方向&#xff0c;点击鼠标左键射击&#xff0c;生命值100分&#xff0c;被敌船击中减去20&#xff0c; 5次生命复活机会&#xff0c;统计分数&#xff0c;快去星际飞船大战吧^^。开始游戏https://www.ormcc.com/pl…

Dijkstra求最短路 II(堆优化Dijkstra算法)

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c;所有边权均为非负值。 请你求出 11 号点到 n 号点的最短距离&#xff0c;如果无法从 11 号点走到 n 号点&#xff0c;则输出 −1−1。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含…

鱼骨探矿的题解

原题描述&#xff1a; 题目描述&#xff1a; 众所周知&#xff0c;《我的世界》中一种非常流行的探矿方式就是鱼骨探矿。 我的世界的地图可以看作一个的正方形世界。 经过初步探测&#xff0c;在第 i 行&#xff0c;[li, ri] 区间内可能存在宝藏。为了探索效率&#xff0c;…

C# | 对比不同种类的锁

文章目录 C# 对比不同种类的锁异同点对比表使用方法lock语句Monitor类Mutex类Semaphore类ReaderWriterLock类 结语 C# 对比不同种类的锁 Hi&#xff0c;在C#编程中&#xff0c;想要保护共享资源&#xff0c;通常会用到各种类型的锁。今天我们就来一起看看C#中不同种类的锁&…

geolife 笔记:将所有轨迹放入一个DataFrame

单条轨迹的处理&#xff1a;geolife笔记&#xff1a;整理处理单条轨迹-CSDN博客 1 加载数据 import pandas as pd import numpy as np import datetime as dt import osdata_dir Geolife Trajectories 1.3/Data/ 1.1 列出所有文件夹 dirlist os.listdir(data_dir) dirlist…

基于Qt开发的闹钟

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);speecher new QTextToSpeech(this); }Widget::~Widget() {delete ui; }//定时器超时时&#xff0c;自动执行的…

Ubuntu22.04中用户的全名

概要&#xff1a; 用户的全名有别于用户名username username可以理解为账户名&#xff0c;或者说用户ID&#xff0c;用于确定身份&#xff0c;显然是必需的 用户全名则不是必需的&#xff0c;用户全名也叫做注释&#xff0c;是一种辅助信息&#xff0c;如果没有填写用户全名…

docker 资源控制

Docker的资源控制 对容器使用宿主机的资源进行限制&#xff0c;如cpu&#xff0c;内存&#xff0c;磁盘I/O Docker使用linux自带的功能cgroup(control grouos)是linux内核系统提供的一种可以限制&#xff0c;记录&#xff0c;隔离进程组使用的物理资源 Docker借助这个机制&…

MySQL执行流程_执行一条select语句,期间发生了什么

文章目录 执行一条select语句&#xff0c;期间发生了什么MySQL执行流程第一步&#xff1a;连接器第二步&#xff1a;查询缓存第三步&#xff1a;解析SQL第四步&#xff1a;执行SQL 执行一条select语句&#xff0c;期间发生了什么 MySQL执行流程 server层负责建立连接、分析和执…

Banana Pi BPI-R4 SBC/路由器推出,带双 10G SFP+ 端口+Wifi7支持

Banana Pi BPI-R4 wifi7路由器开发板 香蕉派 Banana Pi BPI-R4 根据著名Banana Pi品牌背后的公司Sinovoip提供的初步信息&#xff0c;他们即将推出的Banana Pi BPI-R4路由器板目前已经正式发售。与之前的 Banana Pi R3 板相比&#xff0c;这在规格上将有显着提升。这就是我们…