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,一经查实,立即删除!

相关文章

主成分分析碎石图_主成分分析大全

1 背景主成分分析法是数据挖掘中常用的一种降维算法,是Pearson在1901年提出的,再后来由hotelling在1933年加以发展提出的一种多变量的统计方法&#xff0c;其最主要的用途在于“降维”&#xff0c;通过析取主成分显出的最大的个别差异,也可以用来削减回归分析和聚类分析中变量的…

oracle中删除表字段 sql语句怎么写,oracle使用sql语句增加字段示例(sql删除字段语句)...

添加字段的语法&#xff1a;alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法&#xff1a;alter table tablename modify (column datatype [default value][null/not null],….);删除字段的语法&#xff1a;alter table table…

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

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

ios 获取沙河文件夹_iOS开发之获取沙盒路径

iOS开发之沙盒机制(SandBox)详细讲解了沙盒的一些机制。在开发中&#xff0c;我们需要对沙盒进行操作&#xff0c;所以我们需要获取到沙盒路径。沙盒里的文件夹包括Documents、Library、tmp。这三个文件夹的作用请点击这里。接下来我们来讲解如何获取Documents、Library、tmp的…

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;处理不好…

oracle命令行原理,Oracle命令行操作方式

(1) 进入sqlplus界面 sqlplus user/passworddbname (2)进入sqlplus界面 sqlplus /nolog SQL>conn sys/jiaxiaoaiorcl as sysdba; (4)查看当前所有的数据库 select * from v$database; 或 select name from v$database; (5)查看哪些用户拥有sysdb…

编辑器eslint格式_ESlint 代码格式大坑vscode vetur,eslint 冲突

解决冲突&#xff1a;① vscode 设置页面设置需要使用 ESlint 的格式化&#xff0c;就要将 vscode 编辑器默认的格式化去掉、把 vetur 插件的格式化改写JSON"vetur.validation.template": false // 把 vetur 扩展的 template 格式化去掉"editor.formatOnSave…

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

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

大数据学情分析_多分学情大数据分析

多分学情大数据分析云上大数据仓库解决方案阿里云为企业提供稳定可靠离线数仓和实时数仓的解决方案&#xff0c;包括数据采集、数据存储、数据开发、数据服务、数据运维、数据安全、数据质量、数据地图等完整链路。离线数仓基于Serverless的云上数据仓库解决方案。架构特点开箱…

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;都要…

oracle to char trim,to_char前面多出空格

to_char前面多出空格用to_char对数字时前面会多出一个空格。SQL> select to_char(10,00) from dual;TO_---10 --前面有一个空格&#xff0c;这是一个正数的符号位SQL> select length(to_char(10,00)) from dual;LENGTH(TO_CHAR(10,00))------------------------3 …

lisp正负调换_lisp中如何把符号转换为字符串

满意答案rantian20022018.05.29采纳率&#xff1a;47% 等级&#xff1a;12已帮助&#xff1a;12730人1&#xff0c;算术运算 - * / ~ 1 1-abs atan cos exp expt fix floatgcd log logand logior lsh max minminusp rem sin sqrt zerop2&#xff0c;字符串处理strcase strca…

python windows开发_windows 下 python 开发是一种什么样的体验?

只知道如果想用的包没编译好&#xff08;源码状态&#xff09;&#xff0c;你在win下&#xff0c;能折腾很久&#xff0c;各种奇葩报错&#xff0c;在linux下就好多了 补充一下: 我是用的是python2.7,微软给了官方的针对2.7的编译环境: Visual C Compiler for Python 2.7 根据前…

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

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

vue移动端项目怎么生成apk_vue-cli或vue项目利用HBuilder打包成移动端app操作

一、测试项目是否可以正确运行 指令:npm run dev1、首先我们先建立一个vue的项目&#xff0c;本人用的是vue-cli随便建立的&#xff0c;然后运行项目二、修改路径 (assetsPublicPath: ‘./)1、 打开我们config中的js文件&#xff0c;修改assetsPublicPath的路径为"./"…

python字典怎么添加值_python字典中如何添加键值对

添加键值对 首先定义一个空字典 1 >>> dic{} 直接对字典中不存在的key进行赋值来添加 1 2 3 >>> dic[name]zhangsan >>> dic {name: zhangsan} 如果key或value都是变量也可以用这种方法 1 2 3 4 5 >>> keyage >>> value30 >&g…

Redis数据库——键过期时间

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

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

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