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的关系如下图所示。

其中,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 基础项目的代码压缩包。

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

使用IDEA 创建

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

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

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

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

  • 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,也可以自行修改。

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

创建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 项目的目录结构如下图所示。

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

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 的主程序类

由于 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 服务中并没有任何可访问资源。

接口测试

接下来,我们需要自行实现一个 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,可以看到已经没有错误页面,如下图所示!

Spring Boot项目搭建与启动

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

  1. boot sprint 项目结构_Spring Boot 项目结构

    (1)代码层的结构 根目录:com.springboot 1.工程启动类(Application.java)置于com.springboot.build包下 2.实体类(domain)置于com.sp ...

  2. springboot项目层次结构_spring boot项目结构

    项目之初,一般我们会根据团队的构成和项目的需求把技术选型.框架定下来,技术选型框架确定后,在团队成员参与开发之前,项目的一些基础服务和组织架构需要资深的负责人或者团队讨论一起分工完成.这样在开始开发后 ...

  3. 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat

    之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...

  4. 项目服务接口设计_Spring Boot Security 整合 OAuth2 设计安全API接口服务

    简介 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版.本文重点讲解Spring Boot项目对OAuth2进行的实现,如果你对OAut ...

  5. springboot 修改了端口不生效_Spring Boot 项目 Docker 化快速上手

    开篇 服务部署是应用上线前的必需环节.大道至简,如何做到项目简单化.自动化甚至傻瓜式部署是考验DevOps的一大难题.从docker面世到k8s的脱颖而出,有越来越多的开源工具也在帮助开发和运维人员解 ...

  6. 项目启动时socket自动启动_spring boot 项目在启动时调用接口

    1.环境 目前开发的项目使用的spring boot(2.1.4.RELEASE)+ssm 2. 需求 现在有一个数据处理任务的接口,在spring boot项目启动后,可以手动的去启动任务,但是这样 ...

  7. linux部署jar项目报错_Spring boot项目部署linux系统tomcat报错解决办法

    一.问题出现的场景: 一个Spring boot项目,使用log4j打印日志,在windows tomcat中部署正常启动,但是在linux系统中部署到tomcat 中时报了如下的错误:java.io ...

  8. springboot jar包部署_Spring Boot项目基于Jar部署和打包详解教程

    目标:将Spring Boot项目使用maven指令打成jar包并运行测试 分析: 需要添加打包组件将项目中的资源.配置.依赖包打到一个jar包中:可以使用maven的package: 部署:java ...

  9. springboot tomcat配置_Spring Boot项目如何同时支持HTTP和HTTPS协议

    本文首发于个人网站:Spring Boot项目如何同时支持HTTP和HTTPS协议 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程 ...

最新文章

  1. Python告诉你这些旅游景点好玩、便宜、人又少!
  2. HDLBits 系列(30)Serial Receiver
  3. PAT甲级1008 Elevator:[C++题解]模拟
  4. 【生成模型】极大似然估计,你必须掌握的概率模型
  5. 【收藏】goland报错:报错package xxx is not in GOROOT or GOPATH 或者 cannot find package “xxx“ in any of
  6. Access数据库查询练习专用数据库 -手机号码归属地Access数据库_MobileDB(10万条记录)...
  7. Ubuntu apt upgrade后黑屏问题
  8. Dapp简单的投票小例子
  9. 实时屏幕监控 linux面板,分享|LXDE、Xfce 及 MATE 桌面环境下的又一系统监视器应用:Multiload-ng...
  10. JVM005_synchronized、同步指令、管程、MESA
  11. IP defragment
  12. 飘云阁(PYG)番茄插件流氓弹窗清除方法
  13. Linux新手入门教程
  14. 拯救阿拉德大陆--竞码编程H-20‘
  15. java实现网页评分_Java web分级测试评分C级感受
  16. baidu patchrom项目 make后刷机包脚本多一个0解决
  17. 普中tft彩屏驱动程序下载_tft彩屏驱动程序
  18. 墨西哥海运专线时效,有哪些墨西哥专线货代?
  19. ZOJ 3380 Patchouli's Spell Cards(概率DP)
  20. android 邮件发送

热门文章

  1. 数据结构和算法——栈、队列、堆
  2. php链接javascript,javascript - 添加类=“行为链接”到活动页面 - PHP或JS - SO中文参考 - www.soinside.com...
  3. 苹果挂端口方法_调音台变身直播声卡的方法
  4. oci连接mysql_使用 OCILIB 连接并操作 Oracle 数据库
  5. stm32按键输入实验c语言,stm32f103学习笔记(三)按键输入(IO口输入)
  6. c++ so 反射_c++如何实现反射功能?
  7. OpenCV中VideoCapture判断isOpened()时总是返回false
  8. 基于 frida 实现的逆向工具包 hooker
  9. 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】
  10. vscode 调试 C++/JavaScript