搭建SpringBoot项目三种方式(超详细版)

news2024/11/28 13:34:45

目录

一、官网下载压缩包解压

二、通过Idea脚手架搭建

三、Spring Boot项目结构

3.1 pom.xml文件

3.2 启动类

3.3 配置文件

四、通过创建Maven项目添加依赖


一、官网下载压缩包解压

接下来我们搭建一个SpringBoot项目,并引入SpringMVC的功能,首先我们可以通过官网搭建项目:

1. 访问start.spring.io

然后我们可以点击右上方的Add depenencies来进入我们需要的依赖

可以我们想要添加什么依赖在上方搜索框搜一下,直接加进来就可以了,比如说想要添加Spring Web依赖,如下图:

然后自定义项目名称Name,选择项目类型,Maven,项目语言:java

然后直接Generate

已经下载好了,我们直接解压到自己喜欢的目录下,然后通过Idea打开:

等下方的依赖引进来之后,直接点击运行:看到下图,则说明运行成功,则可以开启我们的SpringBoot学习啦

SpringBoot版本说明:

  • SNAPSHOT:快照版,表示开发版本,随时可能修改;
  • M1(Mn):M1是milestone的缩写,也就是里程碑版本;
  • RC1(RCn):RC1是release candidates的缩写,也就是发布预览版;
  • Release:正式版,也可能没有任何后缀也表示正式版

SpringBoot打包类型说明:

使用SpringMVC开发的是一个web项目,但由于在SpringBoot中直接嵌入了Tomcat等Web容器,所以在使用SpringBoot做Web开发时不需要部署War文件,只需要打成Jar包即可。

二、通过Idea脚手架搭建

好了,现在我们来说一下,如何在Idea上直接搭建SpringBoot项目:

1. 在左侧列表选择Spring Initializer,代表这是一个Spring Boot项目

2. 项目来源地址,因为spring是国外的服务器,所以我们通常使用阿里云的网站来搭建会快一点。

3. 点击设置,更改URL为:https://start.aliyun.com/

然后输入我们的项目名称Name,还有一个Java版本,打包类型,然后点击Next

1. 选择Spring Boot项目,由于这是国内镜像,阿里云的版本一般比官网低一点

2. 同样,我们在搜索框里搜索我们需要添加的依赖,比如说这里添加一个web依赖。然后直接点击Finish

点击Finish之后会直接打开我们刚刚创建的项目,可以看到这里还加了一个demo给我们,

OK,我们直接运行,出现下面页面也是代表我们构建运行项目成功。

三、Spring Boot项目结构

接下来我们分析一下Spring Boot项目结构。

3.1 pom.xml文件

1. SpringBoot项目必须继承spring-boot-starter-parent,即所有的SpringBoot项目都是spring-boot-starter-parent的子项目。spring-boot-starter-parent中定义了常用配置、依赖、插件等信息,供SpringBoot项目继承使用。

其实在有些比较新的版本里面是不需要继承parent 项目......

SpringBoot项目中可以定义起步依赖,起步依赖不是以jar包为单位,而是以功能为单位,毕竟是一个约定大于配置的思想,凡是看到依赖带有stater单词的基本都不用添加依赖版本,因为这都已经在父项目parent中配置好了。

spring-boot-maven-plugin插件是将项目打包成jar包的插件。该插件打包后的SpringBoot项目无需依赖web容器,可以直接使用JDK运行

3.2 启动类

启动类的作用是启动SpringBoot项目,运行启动类的main方法即可启动SpringBoot项目。

注意的是,启动类一定要放在最外层包下面,因为项目启动后,加载文件加载包都是在启动类的同级目录下的

3.3 配置文件

由于SpringBoot极大简化了Spring配置,所以只有一个application.properties配置文件,且Spring的自动配置功能使得大部分的配置都有默认配置,该文件的功能是覆盖默认配置信息,该文件不写任何信息都可以启动项目。启动后默认端口号为8080,我们可以覆盖该配置:

注意:配置文件的加载优先级是有config选config,有项目目录下扫描项目目录下。下面就是配置文件扫描优先级。

  1. 项目目录下的conifg目录
  2. 项目目录下的配置文件
  3. resources目录下的config目录
  4. resources目录下的配置文件

启动项目,我们可以发现端口变成8888了。

四、通过创建Maven项目添加依赖

OK,通过了解了Spring Boot项目的项目结构,那我们可以直接通过Maven搭建Spring Boot项目了。引入对应的SpringBoot依赖即可,和构建属于SpringBoot的资源目录

1. 使用Maven构建Maven项目:

选择项目JDK版本,点击Finish

自定义项目名称和位置,然后点击finish.

OK,项目创建完成后,我们只需要在pom.xml文件中引入相关依赖即可

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.7.16-SNAPSHOT</version>
    </parent>

    <dependencies>
        <!-- Spring MVC依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- springBoot的Test依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
            </plugin>
        </plugins>
    </build>

</project>

1. 引入父项目,2. 引入相关依赖,3. 添加tomcat插件,4. 刷新pom文件

OK,然后我们添加启动类,首先在源程序目录(java)下添加包,com.example.demo,然后把SpringBootDemo启动类添加到该包下:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootDemo {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemo.class);
    }
}

然后点击运行即可,OK,看下图是成功运行的了。

以上就是创建SpringBoot项目的三种方式,喜欢哪个就用哪个啪。

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

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

相关文章

【JAVA EE】详解单点登录

作者简介 目录 1.概述 2.实现方案 2.1.分散鉴权 2.2.集中鉴权 1.概述 SSO&#xff0c;即进行一次认证&#xff0c;然后就可以访问所有子系统。很明显SSO只是一种具象化的目标而已&#xff0c;目前业内为了实现单点登录、统一鉴权&#xff0c;提出了一系列的打法。比如直接…

C# 读取Execl文件3种方法

方法 1&#xff0c;使用OLEDB可以对excel文件进行读取 1.1C#提供的数据连接有哪些 对于不同的.net数据提供者&#xff0c;ADO.NET采用不同的Connection对象连接数据库。这些Connection对我们屏蔽了具体的实现细节&#xff0c;并提供了一种统一的实现方法。 Connection类有四…

ElementUI之首页导航及左侧菜单(模拟实现)

目录 ​编辑 前言 一、mockjs简介 1. 什么是mockjs 2. mockjs的用途 3. 运用mockjs的优势 二、安装与配置mockjs 1. 安装mockjs 2. 引入mockjs 2.1 dev.env.js 2.2 prod.env.js 2.3 main.js 三、mockjs的使用 1. 将资源中的mock文件夹复制到src目录下 2. 点击登…

Java SimpleDateFormat格式化日期时间

java.text.SimpleDateFormat 格式化日期时间&#xff0c; 参考 api 说明 Overview (Java Platform SE 8 ) Examples The following examples show how date and time patterns are interpreted in the U.S. locale. The given date and time are 2001-07-04 12:08:56 local t…

Normalization总结(BN/LN/WN/IN/GN)

一、简介 在深度学习领域&#xff0c;Normalization用得很多&#xff0c;BN&#xff08;Batch Normalization&#xff09;于2015年由 Google 提出&#xff0c;开创了Normalization 先河&#xff1b;2016年出了LN&#xff08;layer normalization&#xff09;和IN&#xff08;I…

基于UDP协议的网络服务器的模拟实现

目录 服务端类UdpServer的模拟实现 服务端类UdpServer的成员变量 服务端类UdpServer的构造函数、初始化函数initServer、析构函数 服务端类UdpServer的start函数 服务端类UdpServer的整体代码&#xff08;即udp_server.h文件的整体代码&#xff09; 基于服务端类UdpServe…

不同的jdk版本编译得到的class文件中的信息是不是会不一样

不同的jdk版本编译得到的class文件中的信息是不是会不一样 不同的 JDK 版本编译得到的 .class 文件中的信息可能会有所不同。主要的差异可能出现在以下几个方面&#xff1a; 类文件版本号&#xff1a;随着 JDK 版本的升级&#xff0c;类文件的版本号也会发生变化。例如&#x…

左神高级进阶班6(利用快排的partition过程、BFPRT、动态规划的斜率优化技巧、二叉树的递归套路、完美洗牌问题)

目录 【案例1 利用快排的partition过程&#xff0c;BFPRT】 【题目描述】 【思路解析】 【代码实现】 【案例2 动态规划的斜率优化技巧】 【题目描述】 【思路解析】 【代码实现】 【案例3 二叉树的递归套路】 【题目描述】 【搜索二叉树定义】 【思路解析】 【代…

BERT 快速理解——思路简单描述

定义&#xff1a; BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一种预训练的语言模型&#xff0c;它基于Transformer架构&#xff0c;通过在大规模的未标记文本上进行训练来学习通用的语言表示。 输入 在BERT中&#xff0c;输入…

一篇博客学会系列(1) —— C语言中所有字符串函数以及内存函数的使用和注意事项

目录 1、求字符串长度函数 1.1、strlen 2、字符串拷贝(cpy)、拼接(cat)、比较(cmp)函数 2.1、长度不受限制的字符串函数 2.1.1、strcpy 2.1.2、strcat 2.1.3、strcmp 2.2、长度受限制的字符串函数 2.2.1、strncpy 2.2.2、strncat 2.2.3、strncmp 3、字符串查找函数…

Java 大厂八股文面试专题-JVM相关面试题 垃圾回收算法 GC JVM调优

Java 大厂八股文面试专题-JVM相关面试题 类加载器_软工菜鸡的博客-CSDN博客 3 垃圾收回 3.1 简述Java垃圾回收机制&#xff1f;&#xff08;GC是什么&#xff1f;为什么要GC&#xff09; 难易程度&#xff1a;☆☆☆ 出现频率&#xff1a;☆☆☆ 为了让程序员更专注于代码的实现…

如何使用iPhone15在办公室观看家里电脑上的4k电影,实现公网访问本地群晖!

如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f; 文章目录 如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f;1.使用环境要求&#xff1a;2.下载群晖videostation&#xff1a;3.公网访问本地群晖videostation中的电影&#xff1a;4.公网条件下使用电脑…

【Java基础-JDK21新特性】它发任它发,我用java8

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

黑马JVM总结(二十四)

&#xff08;1&#xff09;练习-分析a a:先执行iload1&#xff1a;把数据读入到操作数栈中 iinc&#xff1a;把局部变量表中的1号曹位做一个自增&#xff0c;他在局部变量表中发生的并没有影响到操作数栈 a&#xff1a;限制性自增在做iload 自增变成12 iload把12读取到操作数…

Mac电脑信息大纲记录软件 OmniOutliner 5 Pro for Mac中文

OmniOutliner 5 Pro是一款专业级的Mac大纲制作工具&#xff0c;它可以帮助用户更好地组织和管理信息&#xff0c;以及制作精美的大纲。以下是OmniOutliner 5 Pro的主要功能和特点&#xff1a; 强大的大纲组织和管理功能。OmniOutliner 5 Pro为用户提供了多层次的大纲结构&…

Python语法之条件语句(很详细)

目录 Python条件语句的介绍 定义 if的语法和实例(最基本的) 语法 gif动态图展示 具体实例 实现思路&#xff1a; if-elif-else的语法和实例&#xff08;最基本的&#xff09; 语法 具体实例 实现思路&#xff1a; 判断需要多个条件需同时判断语法和实例&#xff08;最基…

利用Axure RP和cpolar内网穿透实现公网访问本地web网页

AxureRP制作静态站点发布互联网&#xff0c;内网穿透实现公网访问 文章目录 AxureRP制作静态站点发布互联网&#xff0c;内网穿透实现公网访问前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4…

最详细的next国际化方案

实现效果 : 根据浏览器语言判断和手动切换(两种切换模式) 实现方法 1.下载安装包 (next-i18next react-i18next i18next) yarn add next-i18next react-i18next i18next 2.在根目录下创建文件(next-i18next.config.js) const path require("path");module.expo…

MATLAB 安装额外工具包

接下里即可搜索并安装 “额外工具包”

python多继承构造函数声明问题

前言&#xff1a; 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 背景 有场景分别定义两组逻辑&#xff0c;随后有统一入口做基类属性的整合 其中两组逻辑的积累构造函数定义入参不同 设计类继承图如&#…