创建第一个SpringBoot项目

news2024/12/24 6:02:31

在这里插入图片描述

✅作者简介:大家好,我是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名幸运读者,并在微信私信通知,请大家注意查收哈。

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

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

相关文章

IO第二天作业

1.用read write函数实现文件拷贝 程序 #include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h> #include <stdlib.h> #include <string.h>int main(int argc, const char *argv[]){…

练练手之“四环”“磁铁”(svg)

文本是闲暇之余练习svg的运用的产物&#xff0c;记录以备有需。 <svg xmlns"http://www.w3.org/2000/svg" viewBox"0 0 500 500" width"500px" height"500px"><path d"M150,100 A50,50 0 1,1 150,99.999" stroke&q…

1836_emacs显示空白字符

Grey 全部学习汇总&#xff1a; GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 全部学习内容汇总&#xff1a; 1836_emacs显示空白字符 show-trailing-whitespace是emacs中内置的一个变量&#xff0c;这个变量的值如果设置为nil那么不…

国内几款常用热门音频信号处理电路芯片--低噪声,高增益

随着智能手机、汽车音频、AI智能音箱&#xff0c;智能家居、家庭影院、平板电脑、笔记本电脑等智能设备的普及&#xff1b;数字音频功放芯片的应用也越来越广泛&#xff1b;同时对音频信号处理的芯片的性能要求越来越高&#xff1b;以下几款就是常用热门音频信号处理电路芯片分…

Leetcode—2963.统计好分割方案的数目【困难】

2023每日刷题&#xff08;五十七&#xff09; Leetcode—2963.统计好分割方案的数目 算法思想 参考灵神思路 实现代码 class Solution { public:long long mod 1e97;long long pow(long long x, int cnt) {if(cnt 0) {return 1;}if(cnt 1) {return x % mod;}long long …

知网查重重复率多少标红 神码ai

大家好&#xff0c;今天来聊聊知网查重重复率多少标红&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 知网查重重复率多少标红 在论文撰写过程中&#xff0c;我们常常需要使用各种查重工具来检测论文的…

电脑技巧:Windows右键菜单增强工具FileMenu Tools介绍

目录 一、为Win10系统添加FileMenu Tools右键菜单组 二、自定义添加FileMenu Tools右键菜单项 五、“发送到…”右键菜单&#xff1a; 六、管理第三方程序添加的右键菜单项 七、获取某个FileMenu Tools菜单项的使用命令 八、软件下载 FileMenu Tools 是一款强大的 Window…

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 相关其它博客工程源代码下载其它资料下载 前言 本项目基于Keras框架&#xff0c;引入CNN进行模型训练&#xff0c;采用Dropout梯度…

基于ssm服装定制系统源码和论文

idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 环境&#xff1a; jdk8 tomcat8.5 开发技术 ssm 基于ssm服装定制系统源码和论文751 1.1项目研究的背景 困扰管理层的许多问题当中,服装定制将是广大用户们不可忽视的一块。但是管理好服装定制又面临很多麻…

【算法-字符串3】听说KMP很难?进来看这篇:实现strstr(),查找子串

今天&#xff0c;带来KMP算法的讲解。文中不足错漏之处望请斧正&#xff01; 理论基础点这里 今天我们来实现strstr()。 题意转化 在一个字符串mainStr中找另一个字符串subStr。 解决思路 两指针i和j分别在mainStr和subStr中拿取字符尝试匹配 匹配&#xff1a;继续不匹配&…

Redis Bitmaps 数据结构模型位操作

Bitmaps 数据结构模型 Bitmap 本身不是一种数据结构&#xff0c;实际上它就是字符串&#xff0c;但是它可以对字符串的位进行操作。 比如 “abc” 对应的 ASCII 码分别是 97、98、99。对应的二进制分别是 01100010、01100010、01100011, 如下所示&#xff1a; a b …

java--认识Stream

1.什么是Stream ①也叫Stream流&#xff0c;是JDK8开始新增的一套API(java.util.stream.*)&#xff0c;可以用于操作集合或者数组的数据。 ②优势&#xff1a;Stream流大量的结合了Lambda的语法风格来编程&#xff0c;提供了一种更加强大&#xff0c;更加简单的方式操作集合或…

利用anaconda中的Conda创建虚拟环境

目录 1. Anaconda 环境变量手动设置(详细)2. Conda 创建虚拟环境参考文献 1. Anaconda 环境变量手动设置(详细) 问题 Win键r打开运行对话框&#xff0c;输入cmd回车 输入conda&#xff0c;显示&#xff1a;‘conda’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处…

孩子还是有一颗网安梦——Bandit通关教程:Level 9 → Level 10

&#x1f575;️‍♂️ 专栏《解密游戏-Bandit》 &#x1f310; 游戏官网&#xff1a; Bandit游戏 &#x1f3ae; 游戏简介&#xff1a; Bandit游戏专为网络安全初学者设计&#xff0c;通过一系列级别挑战玩家&#xff0c;从Level0开始&#xff0c;逐步学习基础命令行和安全概念…

MistralAI发布全球首个MoE大模型-Mixtral 8x7B,创新超越GPT-4

引言 MistralAI&#xff0c;一家法国的初创企业&#xff0c;近期在AI界引发了轰动&#xff0c;刚刚发布了全球首个基于MoE&#xff08;Mixture of Experts&#xff0c;混合专家&#xff09;技术的大型语言模型——Mistral-8x7B-MoE。这一里程碑事件标志着AI技术的一个重要突破…

数据库中常用的锁

目录 1、数据库中常用的锁类型 2、常见的数据库 3、以MySQL为例 3.1 MySQL的事务 3.2 MySQL事务的四大特性 1. 原子性&#xff08;Atomicity&#xff09; 2. 一致性&#xff08;Consistency&#xff09; 3. 隔离性&#xff08;Isolation&#xff09; ⭐mysql中的事务隔…

【QT 5 调试软件+(Linux下验证>>>>串口相关初试串口)+Windows下qt代码在Linux下运行+参考win下历程+基础样例】

【QT 5 调试软件Linux下验证>>>>串口相关初试串口参考win下历程基础样例】 1、前言2、实验环境3、先行了解4、自我总结-win下工程切到Linux下1、平台无关的代码&#xff1a;2、依赖的库&#xff1a;3、文件路径和换行符&#xff1a;4、编译器差异&#xff1a;5、构…

simulinkveristandlabview联合仿真环境搭建

目录 开篇废话 软件版本 明确需求 软件安装 matlab2020a veristand2020 R4 VS2017 VS2010 软件安装验证 软件资源分享 开篇废话 推免之后接到的第一个让人难绷的活&#xff0c;网上开源的软件资料和成功的案例很少&#xff0c;查来查去就那么几篇&#xff0c;而且版本…

链表OJ—环形链表的约瑟夫问题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 世上有两种耀眼的光芒&#xff0c;一种是正在升起的太阳&#xff0c;一种是正在努力学习编程的你!一个爱学编程的人。各位看官&#xff0c;我衷心的希望这篇博客能对你…

使用Retrofit实现文件的上传和下载

一、前言 使用Retrofit实现文件的上传和下载&#xff0c;代码是正确的代码但是我也不知道为什么运行不出来。 报错内容可以给你们看一下暂时没有解决。 1.文件的上传报错内容 什么添加读写权限&#xff0c;降低目标sdk的版本都试过了不行。有木有会的留个言。 2.文件的下载…