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

如何用SpringBoot(2.3.3版本)快速搭建一个项目?文末有小彩蛋

点赞再看,养成习惯,听说微信搜公众号《Java鱼仔》会让自己的技术更上一层楼

(一)概述

SpringBoot作为现在工作中最常用的一个框架,大部分人对他都只做到了会用这一步,但是SpringBoot的许多细节却被我们所忽略掉了,因此我打算写这样一个有关SpringBoot的系列文章,争取能让不管是新手还是老手都能从中再学到东西。

(二)快速搭建一个SpringBoot项目

新建一个项目,选择Spring Initialize,这是SpringBoot快速搭建的入口,我们可以看到这里默认有一个网站,其实这个网址就是Spring官网快速开发SpringBoot项目的入口。
在这里插入图片描述
点开这个网站,其实就是一个快速生成springboot项目的网站,在这里选择各项配置后,点击生成会自动生成一个压缩包,这个压缩包解压后即可直接导入到idea中。
在这里插入图片描述
当然通过idea直接生成会更加方便,点击next后,下一个页面的功能其实和官网一样,填写项目名,选择语言,java版本等,选择完成后点击next
在这里插入图片描述
在下一个页面,可以选择你想要引入的jar包以及Springboot的版本,所有选择到的依赖包都会在最右侧的Selected Dependencies中展示,选择好后点击next,等待maven依赖安装好后即可。
在这里插入图片描述
最后生成一个完整的项目,配置过程中所选择的依赖都会出现在pom.xml中。如果遇到maven无法下载的问题建议改个maven的镜像。直接运行启动类,项目成功启动。

在这里插入图片描述

(三)分析目录结构

我们观察一下当前目录结构,所有的代码放在src/main/java下,配置文件和资源文件放在src/main/resources,测试代码放在src/test下。
target目录为编译后的class文件目录,所有的依赖放在pom.xml文件中。

我们再来看看启动类,我们跟随源码可以发现,启动类其实就是一个组件。进入SpringBootApplication注解。
在这里插入图片描述
再点进SpringBootConfiguration注解,可以看到我们十分熟悉的configuration注解,这个注解就是一个Component
在这里插入图片描述

(4)POM.XML

通过maven,我们不再需要手动导入jar包,只需要配置pom.xml文件即可:
我们来分析一下pom的结构
在这里插入图片描述
首先是标签代表该项目有一个父项目,spring-boot-starter-parent。下面其他的命名均为创建项目时自己配的。
在这里插入图片描述
最底下的build标签所引入的是打包插件,我们要将项目打包为jar包或者war包就需要这个依赖。
接下来是最重要的依赖引入,所有外部仓库中引入的依赖放在dependencies中

<dependencies>
    <!-- web依赖:集成tomcat、dispatchServlet、xml等 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 单元测试 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

到这里我想你也已经可以很轻松的自己创建一个springboot项目。

(5)打包

前面我们引入了打包插件,这里直接对刚刚新建的项目进行打包。直接双击package即可自动进行打包。
在这里插入图片描述
如果显示的是打包失败,需要配置一下打包插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>

接着便会显示Build Success,在target包下多了一个jar包,就是你项目所生成的jar包。
这个jar包我们可以直接通过java -jar命令去运行
在这里插入图片描述
如果把这个jar包放在服务器上,便可以让所有人来访问你写的这个springboot项目,岂不美哉。

(六)一个小彩蛋

在运行SpringBoot项目时,首先会出来一个Spring的标志,这个标志也可以说是SpringBoot的小彩蛋。修改这个图标的方式也很简单,在application.properties的同级目录下新建一个banner.txt,然后在里面画出你想要展示的图标即可,推荐一个自动生成banner的网站:https://www.bootschool.net/ascii-art
在这里插入图片描述

相关文章:

  • Linux上find命令详解
  • 一步步带你看SpringBoot(2.3.3版本)自动装配原理
  • CCF系列之I’m stuck!(201312-5)
  • SpringBoot配置文件及自动配置原理详解,这应该是SpringBoot最大的优势了吧
  • SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单
  • Git学习笔记(一)--- Git的安装与配置
  • SpringBoot整合SpringSecurity详解,认证授权从未如此简单
  • SpringBoot整合Shiro详解,还在自己写登陆注册早落伍了
  • [android] 请求码和结果码的作用
  • final 在 java 中有什么作用?
  • String str=“i”与 String str=new String(“i”)一样吗?
  • ajaxStart()和ajaxStop()方法
  • 如何让多个线程按顺序执行?
  • 泛型设计实现反向比较器
  • 说一下 HashMap 的实现原理?
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • EOS是什么
  • Joomla 2.x, 3.x useful code cheatsheet
  • maya建模与骨骼动画快速实现人工鱼
  • October CMS - 快速入门 9 Images And Galleries
  • React的组件模式
  • 闭包,sync使用细节
  • 成为一名优秀的Developer的书单
  • 关于List、List?、ListObject的区别
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前嗅ForeSpider教程:创建模板
  • 如何优雅地使用 Sublime Text
  • 以太坊客户端Geth命令参数详解
  • ionic异常记录
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # Apache SeaTunnel 究竟是什么?
  • #includecmath
  • #LLM入门|Prompt#3.3_存储_Memory
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (09)Hive——CTE 公共表达式
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (day 12)JavaScript学习笔记(数组3)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)可以带来幸福的一本书
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET BackgroundWorker
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core 成都线下面基会拉开序幕
  • .net 流——流的类型体系简单介绍
  • .Net 路由处理厉害了
  • /etc/skel 目录作用
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @ModelAttribute使用详解
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians