SpringBoot:构建一个SpringBoot项目

2023-11-09

SpringBoot为我们提供了一系列的依赖包,所以需要构建工具的支持:Maven或Gradle。博主更习惯使用Maven,暂时学习教程基本采用所Maven与IntelliJ IDEA;新公司使用的是Gradle,所以后续可能会使用Gradle。框架基于目前最新的SpringBoot 2.1.1。

一、创建项目

第一个项目,先做一个简单的demo,能跑起来即可。

1.点击 File -> Project;

2.选择Spring Initializr;

第一次用,建议选择的是Spring Initializr(官方的构建插件,需要联网),还有MavenGradle可选,后续可选用。

选择SDK版本,本项目用的是JDK 1.8,然后点击Next。

3.填写项目基本信息

风尘博客

  1. Group:组织ID,一般分为两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等,其中org为非营利组织,com为商业组织;
  2. Artifact:唯一标识符,一般是项目名称;
  3. Description:项目描述。

###4.选择包

风尘博客

  1. 选择最新的SpringBoot版本,最新的为2.1.1,即图中version;
  2. Spring Initializr为我们提供了很多的选项,不同的选项有不同的作用,第一个项目只需要依赖Web -> Web就可以了,选择好依赖包之后点击Next->Finish

5.目录结果

- src
    -main
        -java
            -package
                #主函数,启动类,运行它如果运行了 Tomcat、Jetty、Undertow 等容器
                -SpringbootApplication    
        -resouces
            #存放静态资源 js/css/images 等
            - statics
            #存放 html 模板文件
            - templates
            #主要的配置文件,SpringBoot启动时候会自动加载application.yml/application.properties        
            - application.yml
    #测试文件存放目录        
    -test
 # pom.xml 文件是Maven构建的基础,里面包含了我们所依赖JAR和Plugin的信息
- pom

6.pom.xml 依赖

注意的是版本要选择RELEASE,稳定版本BUG少

<?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">
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <!--Group:组织ID,一般分为两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等,其中org为非营利组织,com为商业组织;-->
    <!--Artifact:唯一标识符,一般是项目名称;-->
    <!--Description:项目描述。-->
    <groupId>cn.van</groupId>
    <artifactId>springboot-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <description>第一个SpringBoot项目示例</description>
    <dependencies>
        <!-- 测试包,当我们使用 mvn package 的时候该包并不会被打入,因为它的生命周期只在 test 之内-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- web 包,默认就内嵌了Tomcat 容器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <!-- 编译插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

7.主函数入口

一个项目中千万不要出现多个main函数,否在在打包的时候spring-boot-maven-plugin将找不到主函数(主动指定打包主函数入口除外…)

package com.van.dusty;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 第一个springboot程序的启动类
 * 其中 @RestController 等同于 (@Controller 与 @ResponseBody)
 */

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

    @GetMapping("/demo")
    public String demo() {
        return "Hello SpringBoot!";
    }
}

二、项目启动-测试

SpringBoot默认的端口是 8080,启动项目后直接访问http://localhost:8080/demo进行测试。

三、项目源码

https://github.com/vanDusty/SpringBoot-Home/tree/master/springboot-demo-list/springboot-demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot:构建一个SpringBoot项目 的相关文章

随机推荐

  • pfSense多拨网速叠加教程

    0 废话 前后一共折腾了两天 发现网上很少有pfsense的多拨教程 查了好多资料终于摸索出来了方法 记录一下 坐标山东 联通光纤入户 200兆 实测稳定在250兆 赞 但是上行只有40兆 最后弄完 下行到了450M 一超过500就全部掉线
  • 杭电OJ 1003 Max Sum

    Max Sum 页面数据来自 this page from http acm hdu edu cn showproblem php pid 1003 Time Limit 2000 1000 MS Java Others Memory Li
  • Leetcode-1991. Find the Middle Index in Array

    Topic Background Given a 0 indexed integer array nums find the leftmost iddleIndex i e the smallest amongst all the poss
  • vben:vue3后台管理项目框架

    前言 Vue Vben Admin 是一个基于 Vue3 0 Vite Ant Design Vue TypeScript 的后台解决方案 目标是为开发中大型项目提供开箱即用的解决方案 包括二次封装组件 utils hooks 动态菜单 权
  • c++ const & constexpr c++98 c++11 c++14

    文章目录 c const 和 constexpr 知识点总结 一 const 1 const修饰变量 修饰普通变量 常量 修饰指针类型 修饰引用类型 2 const修饰函数 const修饰函数参数 const修饰函数返回值 const修饰成
  • 接口超时分析

    原文 接口突然超时 1 网络异常 1 1 网络抖动 经常上网的我们 肯定遇到过这样的场景 大多数情况下我们访问某个网站很快 但偶尔会出现网页一直转圈 加载不出来的情况 有可能是你的网络出现了抖动 丢包了 网页请求API接口 或者接口返回数据
  • Ubuntu16.04下caffe安装编译全过程(CPU)

    caffe是深度学习最好用的框架之一 但caffe的安装编译过程相对较复杂 本人在安装编译时百度了好几个版本 都没有一次成功过 因此在此总结一下自己的编译过程 本文是在Ubuntu16 04下安装编译caffe 其他版本会略有不同 该教程本
  • com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.

    问题 IDEA调试JDBC出错 com alibaba druid support logging JakartaCommonsLoggingImpl error create connection SQLException url jdb
  • 外包测试3年,离职后成功入职阿里,拿到offer的那天我泪目了...

    一提及外包测试 大部分人的第一印象就是 工作强度大 技术含量低 没有归属感 外包工作三年总体感受就是这份工作缺乏归属感 心里总有一种落差 进步空间不大 接触不到核心技术 公司没有针对你的技术培训与探究 工作简单 业务重复 通常是工具人的存在
  • QDockWidget布局方式

    上图为DockWidget多控件效果图 QDockWidget dock QLatin1String Last filters QWidget multiWidget new QWidget QVBoxLayout layout new Q
  • oracle生成不同uuid,oracle生成uuid

    select sys guid from dual gt 78AE331ADB2B4CE7AB598B1317B39D58 但该函数如下问题 1 返回类型为RAW 2 没有 dash 分隔符 3 返回的字母大写 为了使产生的uuid符合rf
  • vue3之createApp分析

    函数定义 createApp函数定义在文件 packages runtime dom src index ts中 export const createApp args gt const app ensureRenderer createA
  • Python 贝叶斯在文本分类的应用案例

    关注微信公共号 小程在线 关注CSDN博客 程志伟的博客 1 1 文本编码技术简介 1 1 1 单词计数向量 在开始分类之前 我们必须先将文本编码成数字 一种常用的方法是单词计数向量 在这种技术中 一个样本可以包 含一段话或一篇文章 这个样
  • 10种排序算法总结(Python 版)

    文章目录 1 冒泡排序 O n 2 2 快速排序 O nlogn 3 简单插入排序 O n 2 4 希尔排序 O n log n 5 简单选择排序 O n 2 6 堆排序 O n log n 7 归并排序 O n log n 8 计数排序
  • 解决keil5编译报错 undefined symbol

    在编译keil5 工程时出现报错 xxx axf Error L6218E Undefined symbol xxx referred from xxxo 正常情况下遇到Undefined symbol问题根据经验有以下几种原因 1 c文件
  • pinia实现持久化存储

    pinia的作用是什么 Pinia 是 Vue 的存储库 它允许您跨组件 页面共享状态 如果您熟悉 Composition API 您可能会认为您已经可以通过一个简单的 export const state reactive 这对于单页应用
  • 论文笔记--Attention is all you need

    Attention is all you need transformer模型 摘要 当前的序列转录模型基于encoder和decoder的循环或卷积神经网络 较好的做法是在encoder和decoder中间加入一个注意力机制 我们提出了一
  • 使用Spyder,导入tensorflow以及相关库出现kernel died等问题的解决方法

    自从使用了Spyder之后 感觉腰不算了 腿不疼了 走路都带风了 呵呵 好吧 那是之前 使用Spyder给我的感觉就好像一台快报废的电脑重新装了系统一样 刚开始顺风顺水 可是后来就发现毕竟是老年机 容易出现个什么白内障 风湿病什么的 做一些
  • 离散数学:数学语言与证明方法(练习题)

    练习1 1 判断下列命题是真是假 1 x x 答 假 x 并不是 x 元素 2 x x 答 真 x 是 x 子集 3 x x 答 真 x 是 x 元素 4 x x 答 假 x 不是 x 子集 5 x 答 真 是 x 元素但不是任何集合元素
  • SpringBoot:构建一个SpringBoot项目

    文章目录 一 创建项目 1 点击 File gt Project 2 选择 Spring Initializr 3 填写项目基本信息 5 目录结果 6 pom xml 依赖 7 主函数入口 二 项目启动 测试 三 项目源码 SpringBo