玩转SpringBoot 2 之项目启动篇
SpringBoot 启动方式有那些?
SpringBoot 有4种方式进行启动,具体方式如下:
- IDEA方式启动
- Eclipse 方式启动
- Maven 启动方式
- 通过SpringBoot 程序 jar 包启动
每种启动方式操作演示
1 IDEA方式启动
选中我们的 SpringBoot 项目,通过下图操作方式进行正常启动 或者 Debug 方式进行启动。

也可以通过打开 SpringBoot 的启动类,右击选择 Run StartdemoApplication 进行正常方式启动,选择 Debug StartdemoApplication 进行 Debug 方式的启动。

2 Eclipse 启动方式
通过Eclipse 创建好我们的 SpringBoot 项目后,选中项目然后点击 Run As,然后在点击 Spring Boot App 就可以启动 SpringBoot 项目。具体操作: 选择项目-> Run As-> Spring Boot App 具体操作如下图:

也可以通过Debug 方式进行启动,方式和上面一样。不同的是我们要选择 Debug As,具体操作: 选择项目-> Run As-> Debug As 具体操作如下图:

除了通过上面选择项目的方式,我们还可以点击springboot 启动类,通过执行main方法来启动项目。具体操作如下图:
点击 Java Application 和 Sprign Boot App 效果是一样的。

3 Maven 启动方式
通过cmd 进入到我们 SpringBoot 项目的根目录中,然后执行 mvn spring-boot:run 就可以运行我们的 SpringBoot 项目啦。

startdemo 项目目录下内容如下:

4 通过 SpringBoot 程序 jar 包启动
首先将程序打包并且跳过单元测试 mvn clean package -Dmaven.test.skip=true,然后将打好的jar包通过 java -jar xxx.jar 来启动。
具体操作方式如下图:

执行完打包命令后在 targer目录下会有一个可执行的 jar。

执行 java -jar startdemo-0.0.1-SNAPSHOT.jar 如下图所示:

指定 端口
通过 java -jar -Dserver.prot 可以指定SpringBoot项目启动的端口号,具体操作如下:
java -jar -Dserver.prot=端口号 jar包名称

指定配置文件进行启动
在 SpringBoot 的 application.ym 配置文件中配置如下图配置:

创建我们开发环境的配置 具体配置如下图:

创建我们的正式环境配置具体配置如下图:

正常启动 SpringBoot 项目会以后缀为dev的配置文件进行启动
我们可以通过 java -jar -Dspring.profiles.active 来动态执行具体执行那个后最配置文件。具体操作如下:
将 SpringBoot 执行 mvn clean package -Dmaven.test.skip=true, 如下图所示:

执行 java -jar -Dspring.profiles.active=配置文件后缀 jar包名称 如下图所示:


小结
工作中你可以根据需要采用上述方式任一启动方式来启动SpringBoot,一般情况下根据你使用的开发工具采用 IDEA方式启动或Eclipse 方式启动。如果使用 SpringCloud 的方式情况下对于不需要进行开发而且必须启动的项目可以使用 java -jar的方式。
玩转SpringBoot 2 之项目启动篇的更多相关文章
- springboot 初始化 web 项目 启动报错。。。一直解决不了
1. 一个简单的SpringBoot项目,启动时报错信息: ERROR 18688 --- [cat-startStop-1] org.apache.catalina.core.ContainerBa ...
- 玩转 SpringBoot 2 快速整合 | JSP 篇
前言 JavaServer Pages(JSP)技术使Web开发人员和设计人员能够快速开发和轻松维护利用现有业务系统的信息丰富的动态Web页面. 作为Java技术系列的一部分,JSP技术可以快速开发独 ...
- 升级了Springboot版本后项目启动不了了
问题背景 项目上使用的springboot版本是2.1.1.RELEASE,现在因为要接入elasticsearch7.x版本,参考官方文档要求,需要将springboot版本升级到2.5.14. 本 ...
- 玩转 SpringBoot 2 快速整合 | FreeMarker篇
FreeMarker 介绍 Apache FreeMarker™是一个模板引擎:一个Java库,用于根据模板和更改数据生成文本输出(HTML网页,电子邮件,配置文件,源代码等).模板是用FreeMar ...
- 玩转 SpringBoot 2 快速整合 | Thymeleaf 篇
前言 Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏览器中正确显示的HTML,也可以用 ...
- 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇
概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...
- Springboot项目启动后自动创建多表关联的数据库与表的方案
文/朱季谦 在一些项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表. 若要解决这类需求,其实现在已有不少开源框架都能实现自动生成数据 ...
- Springboot 项目启动后执行某些自定义代码
Springboot 项目启动后执行某些自定义代码 Springboot给我们提供了两种"开机启动"某些方法的方式:ApplicationRunner和CommandLineRun ...
- springboot 学习之路 9 (项目启动后就执行特定方法)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
随机推荐
- Java 集合框架部分面试题
1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1 ...
- MyEclipse 2016 Stable 1.0破解教程
一.下载所需文件 1. Windows最新版: MyEclipse 2016 Stable 1.0离线安装包(文件大小:1.52GB)--完整安装包,无需在线下载http://pan.baidu.co ...
- HTML--网页练习--(360导航首页的一部分)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- java练习---11
package cn.lyhh; class Person{ private String name; private int age; static String city = "A城&q ...
- 关于引入js文件乱码的问题
对于大多数的web页面,我们一般都是使用如下两种编码:UTF-8.GB2312.所以我们只需要同意页面和js编码就可以解决乱码问题: 对于GBK页面引用编码为UTF-8编码的JavaScript文件如 ...
- 【JDK】JDK源码分析-LinkedHashMap
概述 前文「JDK源码分析-HashMap(1)」分析了 HashMap 主要方法的实现原理(其他问题以后分析),本文分析下 LinkedHashMap. 先看一下 LinkedHashMap 的类继 ...
- 【iOS】[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil] 异常
这两天照书上的例子写代码时,出现了这个异常. 上网查了不少,有人说链接失效什么的……但发现都不是那些原因,问题出现在下面这句代码: [[NSBundle mainBundle] loadNibName ...
- LinkedList源码分析(jdk1.8)
LinkedList概述 LinkedList 是 Java 集合框架中一个重要的实现,我们先简述一下LinkedList的一些特点: LinkedList底层采用的双向链表结构: LinkedL ...
- Leader-Follower线程模型简介
参考58沈剑大神架构师之路上的文章,谈谈Leader-Follower线程模型: 上图就是L/F多线程模型的状态变迁点,共6个关键点: (1)线程有3种状态:领导leading,处理processin ...
- css3实现loading效果--当页面加载过程中显示Loading的进度条,全部加载完成之后进度条消失
一个页面等图片资源全部加载完成,会需要很长时间,用户体验会很差,所以我们需要loading来掩盖这个漫长的过程! emmm,定时器?写个定时器还要清除,万一造成内存泄露?定时器之间还会互相影响,呼呼呼 ...