asp.mvc 4项目发布文件目录结构_Spring Boot项目搭建与启动

Spring Boot简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

在正式介绍Spring Boot之前,让我们先来看看Spring Boot框架的前身Spring框架。Spring框架就像一个家族,由它衍生出的产品包括Spring Boot、Spring Security、Spring MVC和Spring Cloud等等,不过他们的基础都是Spring的ioc和aop。ioc提供了依赖注入的容器,aop解决了面向横切面的编程;然后在此二者的基础上实现了其他延伸产品的高级功能。其中,比较常见的Spring Boot、Spring Cloud、Spring MVC与Spring的关系如下图所示。

3f40d20b8bb874b7f21b9906e6f100af.png

其中,Spring MVC是基于 Servlet 的一个 MVC 框架,主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种xml,properties处理起来比较繁琐。于是为了简化开发者的使用,Spring社区创造性地推出了Spring Boot,它遵循约定优于配置,极大降低了Spring使用门槛,但又不失Spring原本灵活强大的功能。

Spring Boot 项目构建

Spring Boot 提供了多种创建项目的方式,例如Spring Initializr和IDE两种方式。

使用Spring Initializr 方式

Spring 官方提供了 Spring Initializr 来进行 Spring Boot 的快速构建,这是一个在线生成 Spring Boot 基础项目的快捷方式,我们可以将其理解为 Spring Boot 的“创建向导”,用来让初学者可以快速的创建和体验Spring Boot 项目。 接下来,我们使用这个在线向导来快速的创建一个 Spring Boot 骨架工程。

  1. 打开在浏览器中输入 Spring Initializr 的网站地址:start.spring.io。
  2. 之后可以看到页面上需要我们填写和选择项目的基础信息,依次填写即可。
  3. 最后点击页面底部的“Generate”按钮即可获取到一个 Spring Boot 基础项目的代码压缩包。

eaed228fb1bbfa61e648c04b53637ce4.png

最后,解压下载的模版项目,使用工具导入这个模版项目即可。

使用IDEA 创建

除了Spring Initializr在线创建方式外,另一种比较常见的创建方式是使用IDE工具的方式,如下图所示。

17b6a66dc1c4b3933ece8288565589ba.png

由于 IDEA 编辑器中集成了 Spring Initializr 工具,所以使用 IDEA 创建 Spring Boot 项目比较简单。

  1. 点击新建项目,之后弹出新建项目框
  2. 选择 Spring Initializr 选项,单击 Next 按钮,也会出现上述类似的配置界面
  3. 填写相关内容后,单击 Next 按钮,选择依赖的包再单击 Next 按钮
  4. 接下来是选择 Spring Boot 版本选择以及场景导入,选择需要的版本和场景即可,单击 Next 按钮
  5. 如果确认无误后点击 Finish 按钮即可完成 Spring Boot 项目的创建

e27790323aec0c0dbe8a9222538ab8be.png

其中,所需要填入的参数的含义如下:

  • GroupID:项目组织唯一的标识符,实际对应 Java 的包结构,是 main 目录里 Java 的目录结构。
  • ArtifactID:是项目的唯一的标识符,实际对应项目的名称,也就是项目根目录的名称 。
  • Type:项目管理工具,可以选择 Maven 构建或者 Gradle 构建,本项目选用的是常用的 Maven 方式。
  • Language :编程语言,现在支持 Java 、Kotlin 和 Groovy。
  • Packaging:项目的打包方式,有两种选择:Jar 和 War,在 Spring Boot 生成后,如果选用的方式不同,那么导入的打包插件也有区别。 Java Version: 表示 JDK 版本的选择。 Version:项目版本号,IDEA 默认为 0.0.1-SNAPSHOT,也可以自行修改。

然后,我们选择项目所需的依赖即可,如下图所示。

39cb5f36262d73700467cae150a641f8.png

创建Spring Boot项目时,我们可以选择项目所需要的依赖版本,目前Spring Boot最稳定的版本是 2.3.4 ,当然也可以选择其他的稳定版本,版本的选择视项目要求而定,左侧 “Dependencies” 表示添加到项目所依赖的 Spring Boot 组件,也是根据项目要求来选择,需要哪些场景就直接选择相应模块即可,与 SpringBoot Initializr 构建方式类似,也可以多选,本次演示选择了 Web 模块。

mvn 命令方式创建

除了前面的两种方式外,还可以使用mvn 命令方式创建Spring Boot项目。打开命令行并将目录切换到对应的文件夹中,之后运行以下命令:

mvn archetype:generate -DinteractiveMode=false -DgroupId=ltd.newbee.mall -DartifactId=newbee-mall -Dversion=0.0.1-SNAPSHOT

在构建成功后可以生成骨架项目,但是由于生成的项目仅仅是骨架项目,因此 pom.xml 文件中需要自己添加依赖,主方法启动类也需要自行添加,因此不是特别推荐。

Spring Boot 项目结构

使用IDEA 导入 创建的Spring Boot 项目,之后一直点击 next 按钮即可,成功打开后Spring Boot 项目的目录结构如下图所示。

3d3949a95ea151ebe10427c278d2dd5a.png

其中,我们主要关系的几个文件如下:

bili-mall├── src/main/java├── src/main/resources├── src/test/java└── pom.xml
  • src/main/java 表示 Java 程序开发目录,这个目录大家应该都比较熟悉,唯一的区别是 Spring Boot 项目中还有一个主程序类 xxApplication.java。
  • src/main/resources 表示配置文件目录,与普通的 Spring 项目相比有些区别,如上图所示该目录下有 static 和 templates 两个目录,这是 Spring Boot 项目默认的静态资源文件目录和模板文件目录,在 Spring Boot 项目中是没有 webapp 目录的,默认是使用 static 和 templates 两个文件夹。
  • src/test/java 表示测试类文件夹,与普通的 Spring 项目差别不大。
  • pom.xml 用于配置项目依赖。

启动Spring Boot项目

IDEA 启动

在 IDEA 编辑器中,有两种方式可以启动 Spring Boot 项目,分别是: - 工具栏中的 Run / Debug 按钮 - 右键运行 Spring Boot 的主程序类

0db173fca8936f5a514ee3efd67751fd.png

由于 IDEA 编辑器对于 Spring Boot 项目的支持非常友好,在项目导入成功后会被自动识别为 Spring Boot 项目并进行相关配置,以上图片中的所呈现的配置效果都是 IDEA 编辑自动配置的,并没有进行任何的人为设置,此时可以点击工具栏中的【 Run / Debug 】按钮来启动项目。并且,在代码编辑栏目中,可以看到 main() 方法的左侧也有一个启动图标,点击这个图标或者直接右键 Run 也可以直接启动项目。

与普通的 Web 项目相比,启动项目减少了几个中间步骤,不用去配置 Servlet 容器,也不用打包并且发布到 Servlet 容器再去启动,而是直接运行主方法即可启动项目,开发调试都十分方便也节省开发时间。

Maven插件启动

由于 pom.xml 文件中引入了 spring-boot-maven-plugin 插件依赖,也可以直接使用 Maven 命令来启动 Spring Boot 项目,spring-boot-maven-plugin 插件的配置如下。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

如果 pom.xml 文件中没有该 Maven 插件,是无法通过这种方式启动Spring Boot 项目的,这一点需要注意。然后,在IDEA下方工具栏中的 Terminal 打开命令行窗口,之后在命令行中输入命令 mvn spring-boot:run即可启动项目 。

java -jar 命令行启动

项目初始化时我们选择的打包方式为 Jar ,因此项目开发完成进行打包时的结果是一个 Jar 包, Java 运行 Jar 包的命令为 java -jar xxx.jar ,结合以上两个原因我们可以使用这种方式启动 Spring Boot 项目,接下来我们来演示这一过程。

  • 首先,点击下方工具栏中的 Terminal 打开命令行窗口(或者打开 CMD 窗口并切换到当前的代码目录)
  • 之后使用 Maven 命令将项目打包,执行命令为:mvn clean package -Dmaven.test.skip=true,等待打包结果即可
  • 打包成功后进入 target 目录,cd target
  • 最后就是启动已经生成的 Jar 包,执行命令为java -jar newbee-mall-0.0.1-SNAPSHOT.jar

项目成功启动后,打开浏览器访问 8080 端口,可以看到一个 white label error 页面,这个页面是 Spring Boot 的默认错误页面,由页面内容可以看出报错为 404 ,访问其他地址也都会是这个页面。之所以出现这种问题,是因为 web 服务中并没有任何可访问资源。

9042245d28a974c1d9e8b22b11434f9a.png

接口测试

接下来,我们需要自行实现一个 Controller 来测试一下 Spring Boot 如何处理 web 请求。首先,在根目录(启动类的同级目录,不是 src 目录)下新建 controller 包,之后在包里新建一个 Controller 类,代码如下。

package com.bili.mall.bilimall.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@RequestMapping("/api/user")public String say(){return "Hello,I am SpringBoot!";}
}

这段代码大家应该很熟悉,写法与 Spring 项目开发的写法是相同的,这段代码的含义就是处理请求路径为 /info 的 get 请求,之后返回一段字符串,编码完成后重新启动项目并在浏览器中输入地址http://localhost:8080/api/user,可以看到已经没有错误页面,如下图所示!

7363b71d5fa9c69719022e4e1ec345d8.png

Spring Boot项目搭建与启动

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

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

相关文章

windows7系统适合哪个python_Python3.6.4在Windows7系统下安装配置教程

Python3.64在Windows7系统下安装配置教程 工具/原料 Windows7系统 python3.6.4版本 方法/步骤 1 双击应用程序打开如图所示的界面这里是应用程序向导界面 这里建议勾选底部的自动写入path&#xff0c;然后点击自定义选项&#xff08;如图&#xff09;&#xff08;当然你也可以选…

php软删除代码,PHP laeavel软删除以及软删除还原 易错点

PHP laeavel软删除以及软删除还原 易错点PHP laeavel软删除以及软删除还原 易错点首先 数据库字段添加deleted_at字段然后在模型层中引入 SoftDeletes类 并引用use Illuminate\Database\Eloquent\SoftDeletes;控制器正常执行删除代码//软删除public function del(int $id){//$r…

为何控件删除不了_过不好又离不了的婚姻,不如这样去处理

你是否常常感慨&#xff0c;走过了那么长的路&#xff0c;看遍了那么多的繁花&#xff0c;听过了那么多的道理&#xff0c;却依然过不好这一生&#xff1f;明明已经很用心的去生活了&#xff0c;明明已经尽了最大的努力了&#xff0c;生活依然如同一团乱麻&#xff0c;处理不好…

单基因gsea_10个细胞系仅1个表达你的基因

遇到了粉丝的一个超级好的问题&#xff1a;感兴趣的一个基因A&#xff0c;研究它在10种乳腺癌细胞系中的表达情况&#xff0c;跑了western和qpcr 。 发现它只在一种乳腺癌细胞系中表达&#xff0c;其他9种都不表达。 结果是一致的&#xff0c;确认自己的实验没有问题&#xff…

oracle修改成olap模式,的Oracle OLAP Java实现 - 正确源加入

为此&#xff0c;我使用的是默认的模式/例如从Oracle OLAP下载部分GLOBAL 。这是从Oracle OLAP的Java引导代码的修改后的版本&#xff1a;MdmCube unitsCube (MdmCube)mdmDBSchema.getTopLevelObject("PRICE_CUBE_AWJ");MdmBaseMeasure mdmUnits (MdmBaseMeasure)uni…

c 定义结构体时提示应输入声明_C++|了解结构体的内存对齐(成员声明的顺序影响占用空间大小)...

我们使用的电子计算机绝大部分都是冯诺依曼结构的机器&#xff0c;遵循“存储程序”的概念。数据处理以存储为前提&#xff0c;在编程中数据如何“存得进去&#xff0c;取得出来”&#xff0c;并且符合空间、时间效率的要求&#xff0c;在考虑数据结构和算法时&#xff0c;都要…

linux 找不到php命令,bash scp:未找到命令的解决方法

scp命令用于通过ssh在两台服务器之间传输文件。大多数scp用户在系统中已经可以使用scp命令&#xff0c;但它仍然显示“bash:scp:command not found”。因此注意&#xff0c;scp命令必须在本地和远程系统上都可用才可以避免这个问题。安装SCP命令包scp命令来自Red Hat系统上的op…

Redis数据库——键过期时间

一.设置键的生存时间或者过期时间 我们可以在Redis客户端输入命令&#xff0c;可以以秒或者毫秒精度为数据库中的某个键设置生存时间&#xff0c;在指定秒数或者毫秒数之后&#xff0c;服务器会自动删除生存时间为0的键。 1.1 设置过期时间 Redis有四个不同的命令可以用于设置键…

linux 系统配额管理功能,Linux磁盘配额管理

前言&#xff1a;磁盘配额是一种磁盘空间的管理机制&#xff0c;使用磁盘配额可限制用户或组在某个特定文件系统中所能使用的最大空间。Linux系统是多用户任务操作系统&#xff0c;在使用系统时&#xff0c;会出现多用户共同使用一个磁盘的情况&#xff0c;如果其中少数几个用户…

python中的with open读取表格文件_python 使用 with open() as 读写文件

读文件: 要以读文件的模式打开一个文件对象&#xff0c;使用Python内置的open()函数&#xff0c;传入文件名和标示符&#xff1a; >>> f open(E:\python\python\test.txt, r) 标示符r表示读&#xff0c;这样&#xff0c;我们就成功地打开了一个文件。 如果文件不存在…

实用必备xp框架模块_Xposed框架安装、使用以及插件开发

Xposed框架&#xff1a;是一款可以在不修改APK的情况下影响程序运行&#xff08;修改系统&#xff09;的框架服务&#xff0c;基于它可以制作出许多功能强大的模块&#xff0c;且在功能不冲突的情况下同时运作。对原生Launcher替换图标等应用或功能均基于此框架。1、安装xposed…

3D动作绑定_3D动漫制作软件,你知道几个?

最近小编收到很多私信&#xff0c;都是问小编3D动画是靠什么软件制作而成的&#xff1f;小编经过长时间的查询&#xff0c;今天就给大家来讲一讲3D动画到底是靠什么软件制作而成的。首先&#xff0c;先给大家来讲讲3D动画在国内的制作。动画制作是个庞大的工业流程&#xff0c;…

linux set权限,Linux 特殊权限set_uid(示例代码)

特殊权限set_uid默认情况下 , 在新安装好的Linux系统下 , 仅有一个命令是拥有set_uid特殊权限的 .拥有s权限的命令(文件) : 为了确保非所有者用户 , 在使用该命令时,临时拥有所有者的身份 ; 给一个文件设置set_uid特殊权限,前提是该文件是一个可执行的二进制文件(一般都是给命令…

python中如何编写代码输入多个数据并把它们放在一个列表中去_10分钟学习函数式Python...

在这篇10分钟的文章中&#xff0c;您将学习Python中的函数式范型。您还将学习列表推导式。目录函数式范式Python的map函数是如何运行的Python中的lambda表达式Python中的reduce函数filter函数Python中的高阶函数带有函数的部分应用函数编程不是Python化列表推导式任何可迭代对象…

c++ mqtt客户端_MQTT详解及百度物接入连接手机测试(含源码) 秦子帅

MQTT简介MQTT定义MQTT(Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输)是IBM开发的一个即时通讯协议&#xff0c;有可能成为物联网的重要组成部分。该协议支持所有平台&#xff0c;几乎可以把所有联网物品和外部连接起来&#xff0c;被用来当做传感器和制动…

antix linux安装教程,antiX 19.1 发布,轻量级的桌面Linux发行版

antiX是一种轻量级的桌面Linux发行版&#xff0c;以IceWM作为默认窗口管理器&#xff0c;已升级到版本19.1。尽管主要是一个错误修复版本&#xff0c;但新版本还将IceWM更新到版本1.6.3&#xff1a;提供了antiX-19.1错误修复/升级ISO映像。所有新ISO映像都是antiX 19 SysVInit系…

electron增加导航按钮_Electron发布6.0 Released版本

简介在第5版发布仅3个月后&#xff0c;流行的基于JavaScript的跨平台桌面应用程序构建平台达到了第6版&#xff0c;并使用了Chromium 76&#xff0c;Node 12.4和V8 7.6。6.0.0发行说明突破性变化升级到Chromium 76.0.3809.88&#xff0c;Node.js 12.4.0和V87.6.303.22修复了net…

linux u盘刻录软件,Deepin Linux下刻录Windows安装U盘:WoeUSB的介绍和应用

WoeUSB是用于GNULinux的Microsoft Windows USB安装介质工具&#xff0c;用它可以在Deepin等Linux系统下刻录Windows安装U盘。介绍1、特征&#xff1a;支持旧版PC/UEFI引导。支持FAT32和NTFS文件系统。支持使用物理安装光盘或磁盘映像作为源。2、支持的Windows安装映像&#xff…

曲线积分与曲面积分总结_高数下册||知识点总结

知识点总结— 期末来临&#xff0c;你准备好了吗 —高等数学学下一转眼又一学期即将结束期末考试也悄悄地临近了大家都准备好了吗我们为大家带来了高等数学(下)的复习资料来吧&#xff0c;展示&#xff01;1向量代数与空间解析几何首先我们看到的是向量代数与空间解析几何的重点…

java解析excel文件_1.3.1 python解析excel格式文件

Excel表格Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。excel文档的基本定义工作薄(workbook)工作表(sheet)活动表(active sheet)行(row): 1,2,3,4,5,6……..列(column): A,B,C,D……..单元格(cell): B1, C1excel文件格式P…