1. 程式人生 > >springboot2.x簡單詳細教程--高階篇幅之雲伺服器介紹和部署生產環境實戰(第十七章)

springboot2.x簡單詳細教程--高階篇幅之雲伺服器介紹和部署生產環境實戰(第十七章)

一、阿里雲伺服器介紹和使用講解


    簡介:阿里雲伺服器介紹和使用講解

1)

2)第一次需要註冊

3)控制檯


二、阿里雲Linux伺服器部署JDK8實戰


    簡介:在阿里雲伺服器上安裝JDK8和配置環境變數

   jdk 下載 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

  Xshell連線阿里ecs伺服器的教程

https://blog.csdn.net/u013894429/article/details/78811823

 lnux下使用wget下載jdk8:
    進到目錄root/usr/local/software

阿里伺服器 安裝jdk

 1)

2)解壓

tar -zxvf +壓縮包名

3)

  配置環境變數
    vim /etc/profile
    加入
   4)  a) i進行編輯    b)編輯完成按ESC    c)輸入:wq儲存退出

注意 : jdk路徑補充/root/完整更好,反正一開沒加報錯了

    export JAVA_HOME=/root/usr/local/java/software/jdk1.8.0_191
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME PATH CLASSPATH

  5)輸入:wq提示沒有許可權

6):set noreadonly 命令 再輸入:wq即可

7) 使用 source /etc/profile   讓配置立刻生效

本地虛擬機器 安裝jdk 同理

 

三、阿里雲伺服器SpringBoot2.x生產環境部署實戰


    簡介:講解SpringBoot生產環境部署和常見注意事項
    
    
    1、去除相關生產環境沒用的jar
        比如熱部署dev-tool

<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.itcast</groupId>
	<artifactId>Springboot08_A</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>	
		
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

  2)controller

package com.itcast.demo.controller;


import java.util.Date;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.itcast.demo.domain.JsonData;
import com.itcast.demo.domain.User;

/**
 *@lanpo
 */
@RestController
@RequestMapping("/api/v1/user")
public class UserController {
	
	
	/**
	 * 功能描述: 測試介面
	 * @return
	 */
	@GetMapping("find")
	public Object find(){
		
		User user = new User();
		user.setAge(11);
		user.setCreateTime(new Date());
		user.setName("popopo");
		user.setPhone("10010000");
		
       return JsonData.buildSuccess(user);
	}
	
	
	
	
	
}

3)實體類User

package com.itcast.demo.domain;

import java.util.Date;

public class User {

	private int id;
	
	private String name;
	
	private String phone;
	
	private int age;
	
	private Date createTime;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	
	
	
}

4)響應結果類 可不寫

package com.itcast.demo.domain;

import java.io.Serializable;

/**
 * 功能描述:響應結果類
 *
 * <p>
 *
 * </p>
 *
 * @作者 lanpo
 */
public class JsonData implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private Integer code; // 狀態碼 0 表示成功,1表示處理中,-1表示失敗
	private Object data; // 資料
	private String msg;// 描述

	public JsonData() {
	}

	public JsonData(Integer code, Object data, String msg) {
		this.code = code;
		this.data = data;
		this.msg = msg;
	}

	// 成功,傳入資料
	public static JsonData buildSuccess() {
		return new JsonData(0, null, null);
	}

	// 成功,傳入資料
	public static JsonData buildSuccess(Object data) {
		return new JsonData(0, data, null);
	}

	// 失敗,傳入描述資訊
	public static JsonData buildError(String msg) {
		return new JsonData(-1, null, msg);
	}

	// 失敗,傳入描述資訊,狀態碼
	public static JsonData buildError(String msg, Integer code) {
		return new JsonData(code, null, msg);
	}

	// 成功,傳入資料,及描述資訊
	public static JsonData buildSuccess(Object data, String msg) {
		return new JsonData(0, data, msg);
	}

	// 成功,傳入資料,及狀態碼
	public static JsonData buildSuccess(Object data, int code) {
		return new JsonData(code, data, null);
	}

	public Integer getCode() {
		return code;
	}

	public void setCode(Integer code) {
		this.code = code;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	@Override
	public String toString() {
		return "JsonData [code=" + code + ", data=" + data + ", msg=" + msg
				+ "]";
	}

}

 2、本地maven打包成jar包 
        mvn clean package  -Dmaven.test.skip=true 跳過測試

說明:

   mvn clean :用maven 去清除我們快取的資料夾

   package  :打包

   手動打jar包

      專案  >>右鍵  >>RUN  AS  >>  MAVEN install

    3、伺服器安裝jdk,上傳Jar包
        上傳工具:
            windows:
                winscp
                securtyCRT

                Xshell
            mac:
                filezilla
    1)用Xshell上傳jar包

     

 2)啟動jar包 java -jar +加jar檔名

3) 訪問路徑 :  http://47.95.209.26:8080/api/v1/user/find

  注意:     此時退出終端時,訪問不了

 

三個方法: 守護程序、系統服務、shell指令碼

守護程序的方法

      

       此時訪問 OK

 

  4.  打包指定properties配置檔案 (test ,dev)
            1、使用maven的profiles
            2、使用springboot的profile=active

    訪問不了
        1、阿里雲防火牆是否開啟,可以選擇關閉,關閉是不安全的,可以選擇開放埠
        2、阿里雲的安全訪問組,開啟對應的埠,如果應用是以80埠啟動,則預設可以訪問

    5、成熟的網際網路公司應該有的架構
        本地提交生產程式碼jar包->gitlab倉庫->Jenkins自動化構建->運維或者開發人員釋出

  Jenkins 可以部署程式碼和構建應用