SpringBoot項目部署到服務器上的兩種方式

今日閒來無事,就來寫下SpringBoot項目如何部署到遠程服務器,服務器環境我用的是阿里雲和百度智能雲(centos7+java+mysql+tomcat)博友們可自行選着運行環境,大同小異,廢話很少說,咱們就開是整硬菜!!html

jar包(官方推薦)
jar包方式啓動,也就是使用spring boot內置的tomcat運行。服務器上面只要你配置了jdk1.8及以上,就ok。不須要外置tomcat
1.先將項目在IDEA中打成jar包java

2.將jar包經過FTP工具放到服務器任意目錄,執行下面的命令mysql

          $ nohup java -jar test.jar >temp.txt &web

//這種方法會把日誌文件輸入到你指定的文件中,沒有則會自動建立。進程會在後臺運行。
————————————————
spring

 

 ps:Linux jar包運行命令詳細說明,請查看自行百度。。。sql


3.阿里雲服務器/百度智能雲服務器 須要放開對應的端口,此處用就用阿里雲吧!
添加安全組:個人項目中配置的啓動端口是18080,故這裏須要放開18080端口,才能訪問apache

 

 4.訪問swagger
訪問格式:服務器ip:啓動端口/swagger-ui.html
如:http://59.110.155.32:18080/swagger-ui.htmlcentos

 

 


war包
傳統的部署方式:將項目打成war包,放入tomcat 的webapps目錄下面,啓動tomcat,便可訪問。瀏覽器

開發環境:jdk1.8 + IDEAtomcat

下面搭建一個demo演示如何打war包部署而且如何訪問:spring boot + maven
1.新建spring boot + maven 項目,這裏咱們默認打成jar包,不用修改。

2.項目新建完成後,修改啓動Application文件繼承SpringBootServletInitializer,實現configure方法


package com.example.demo1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Demo1Application extends SpringBootServletInitializer {

// 用來測試訪問
@RequestMapping("/")
public String home() {
   return "hello 朋友";
}

public static void main(String[] args) {
  SpringApplication.run(Demo1Application.class, args);
}

// 繼承SpringBootServletInitializer 實現configure 方便打war 外部服務器部署。
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(Demo1Application.class);
  }
}

3.修改pom.xml

完整pom.xml代碼以下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 這裏打成war包 若打jar,需將war改成jar -->
<packaging>war</packaging>

<name>demo1</name>
<description>Demo project for Spring Boot</description>

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.4.RELEASE</version>
  <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
</properties>

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

  <dependency>

  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
  </dependencies>

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

</project>

4.打包
這裏能夠直接到項目根目錄下面:運行 maven package命令,打包。
我這裏直接使用idea打包


5.將war放入外部tomcat的webapps目錄下


6.啓動tomcat


會彈出一個黑框,你會看到項目啓動,啓動完成後,直接訪問:localhost:8080/demo1(即:ip:端口/項目名稱,這裏的端口是外部tomcat配置的端口,項目名稱是war包得名稱),瀏覽器輸出「hello 朋友」,表示運行成功!


必定注意 :我這裏訪問的端口是8080,也就是外部tomcat設置的端口。而不是項目,
application.yml中配置的server.port。

小結
1.對比兩種打包方式,jar更加簡單,方便。具體使用哪一種方式,應視應用場景而定。
2.再說一次,將項目打成war包,部署到外部的tomcat中,這個時候,不能直接訪問spring boot 項目中配置文件配置的端口。application.yml中配置的server.port配置的是spring boot內置的tomcat的端口號, 打成war包部署在獨立的tomcat上以後, 你配置的server.port是不起做用的。必定要注意這一點!!
其實咱們從tomcat的啓動界面,已經能夠看出,是啓動的哪一個端口:很明顯,日誌告訴咱們,咱們應該訪問8080端口。

———————————————

相關文章
相關標籤/搜索