springboot2.x簡單詳細教程--高階篇幅之雲伺服器介紹和部署生產環境實戰(第十七章)
阿新 • • 發佈:2018-11-24
一、阿里雲伺服器介紹和使用講解
簡介:阿里雲伺服器介紹和使用講解
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 可以部署程式碼和構建應用