springboot在服务器上的几种启动方式(小结)

一、使用内置的tomcat,通过java -jar的方式启动

比如:java -jar bms.jar

但是这种启动方式 一旦关闭控制台 或者crtl+c 退出 此时应用就关闭了

所以我们需要换种方式

springboot中的maven插件,提供了一种很方便的类似于shell的开启、关闭、重启服务的操作。而且这种启动方式是让项目在后台运行的,关闭shell也不会使项目停止运行

1、首先,项目的pom添加下面的插件,然后maven install

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

2、将打包好的springboot jar包放入到服务器上,然后执行下面的命令

sudo ln -s /usr/local/server/bms.jar /etc/init.d/bms

3、上述命令执行完全之后,通过下面的命令就可以启动、关闭、重启项目了。

/etc/init.d/bms start 

/etc/init.d/bms stop

/etc/init.d/bms restart

当然,有些人启动的时候,可能会报下面的一个错误,这是权限不足

-bash: /etc/init.d/bms: Permission denied

执行下面命令就可解决问题

cd /etc/init.d/
chmod a+x bms 或 chmod 777 bms

二、使用war包方式,通过tomcat启动

1、修改打包方式

<packaging>war</packaging>

2、移除springboot内置tomcat,添加测试tomcat依赖。。修改pom.xml文件

 <dependency>
       <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
       <!-- 打包的时候以war包形式,这里要把springboot集成的tomcat去除 -->
       <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
          </exclusion>
       </exclusions>
     </dependency>
     <!-- 项目测试需要 -->
     <dependency>
       <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
       <scope>provided</scope>
     </dependency>

3、修改启动类,

在application的同目录下,添加一个新的类,继承SpringBootServletInitializer并重写其configure方法

代码如下

/**
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
 */
publicclassSpringBootStartApplication extends SpringBootServletInitializer {
  @Override
  protectedSpringApplicationBuilder configure(SpringApplicationBuilderbuilder) {
    // 注意这里要指向原先用main方法执行的Application启动类
    returnbuilder.sources(BootStrap.class);
  }
}

4、将war包放到服务器上的tomcat下,重启即可。。。

三、MyEclipse启动

右键单击RestfulDemo类->Run As->Java Application

启动完成

如果看到图中红色的提示语,说明项目正常启动,此时在浏览器输入http://localhost:8080/,就能看到“Hello World!”的输出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • spring boot启动时加载外部配置文件的方法

    前言 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.本文主要给大家介绍了关于spring boot启动时加载外部配置文件的相关内容,下面话不多说了,来随着小编一起学习学习吧. 业务需求: 加载外部配置文件,部署时更改比较方便. 先上代码: @SpringBootApplication public class Application { public static void main(String[] args) throws Exce

  • Spring Boot的应用启动与关闭的方法

    Spring Boot,作为Spring框架对"约定优先于配置(Convention Over Configuration)"理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行.产品级别的基于Spring框架的应用,大部分Spring Boot应用只需要非常少的配置就可以快速运行起来,是一个与微服务(MicroServices)相当契合的微框架. 1. Spring Boot应用打包 Spring Boot应用可以打成jar包,其中内嵌tomcat,因此可以直接启动使用.但是在S

  • spring boot容器启动流程

    一.前言 spring cloud大行其道的当下,如果不了解基本原理那么是很纠结的(看见的都是 约定大于配置 ,但是原理呢?为什么要这么做?).spring cloud是基于spring boot快速搭建的,今天咱们就看看spring boot容器启动流程.(本文不讲解如何快速启动spring boot,那些直接官方看即可, 官网文档飞机票 ) 二.容器启动 spring boot一般是 指定容器启动main方法,然后以命令行方式启动Jar包 ,如下图: @SpringBootApplicati

  • 详解如何在Spring Boot启动后执行指定代码

    在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据等等. 在Spring中可以通过ApplicationListener来实现相关的功能,不过在配合Spring Boot使用时就稍微有些区别了. 创建ApplicationListener 这里以填充部分测试数据为例子,首先实现ApplicationStartup类. publicclass ApplicationStartup implements ApplicationListener<ContextRefr

  • 详解spring boot应用启动原理分析

    前言 本文分析的是spring boot 1.3. 的工作原理.spring boot 1.4. 之后打包结构发现了变化,增加了BOOT-INF目录,但是基本原理还是不变的. 关于spring boot 1.4.* 里ClassLoader的变化,可以参考://www.jb51.net/article/141479.htm spring boot quick start 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动

  • SpringBoot项目不占用端口启动的方法

    SpringBoot项目不占用端口启动 现在很多互联网公司或者项目,都使用SpringBoot + SpringCloud,以微服务的形式来提供后台服务.而且既然是微服务,所涉及到的项目就会很多,服务器端口资源就会相当紧张.而且,其实有些项目,如定时任务等,是不需要对外提供服务,也就不需要占用服务器端口的.那么,在SpringBoot项目中,怎么实现呢?其实很简单,如下: @EnableScheduling @SpringBootApplication public class Applicat

  • Spring Boot解决项目启动时初始化资源的方法

    前言 在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等.今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资源操作. 这个神器就是 CommandLineRunner, CommandLineRunner 接口的 Component 会在所有 SpringBeans都初始化之后, SpringApplication.run()之前执行,非常适合在应用程序启动之初进行一些数据初始化的工作. 接下来我们

  • 详解springboot的三种启动方式

    一:IDE 运行Application这个类的main方法 二:在springboot的应用的根目录下运行mvn spring-boot:run 三:使用mvn install 生成jar后运行 先到项目根目录 mvn install cd target java -jar xxxx.jar 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • 详解Spring Boot 项目启动时执行特定方法

    Springboot给我们提供了两种"开机启动"某些方法的方式:ApplicationRunner和CommandLineRunner. 这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法.我们可以通过实现ApplicationRunner和CommandLineRunner,来实现,他们都是在SpringApplication 执行之后开始执行的. CommandLineRunner接口可以用来接收字符串数组的命令行参数,ApplicationRunner 是使用App

  • spring boot jar的启动原理解析

     1.前言 近来有空对公司的open api平台进行了些优化,然后在打出jar包的时候,突然想到以前都是对spring boot使用很熟练,但是从来都不知道spring boot打出的jar的启动原理,然后这回将jar解开了看了下,与想象中确实大不一样,以下就是对解压出来的jar的完整分析. 2.jar的结构 spring boot的应用程序就不贴出来了,一个较简单的demo打出的结构都是类似,另外我采用的spring boot的版本为1.4.1.RELEASE网上有另外一篇文章对spring

随机推荐