国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 多環(huán)境配置

這篇具有很好參考價(jià)值的文章主要介紹了Spring Boot 多環(huán)境配置。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


一、項(xiàng)目進(jìn)行多環(huán)境配置的必要性

在實(shí)際開發(fā)中,應(yīng)用程序通常需要部署到不同的運(yùn)行環(huán)境中,例如開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境等。不同的環(huán)境可能需要不同的環(huán)境配置,針對這種情況,不可能手動(dòng)變更配置文件來適應(yīng)不同的開發(fā)環(huán)境,通常需要對項(xiàng)目進(jìn)行多環(huán)境配置,Spring Boot框架提供了兩種多環(huán)境配置的方式,分別是Profile文件多環(huán)境配置和@Profile注解多環(huán)境配置。同時(shí),會(huì)額外講解在Spring Boot配置文件中設(shè)置屬性時(shí),除了可以像前面示例中顯示的配置屬性值外,還可以使用隨機(jī)值和參數(shù)間引用對屬性值進(jìn)行設(shè)置。

二、使用Profile文件進(jìn)行多環(huán)境配置

(一)創(chuàng)建Spring Boot項(xiàng)目

使用Spring Initializr模板創(chuàng)建Spring Boot項(xiàng)目——ProfileDemo01,配置好后,單擊【Next】按鈕
Spring Boot 多環(huán)境配置

選擇Spring Boot版本,添加相關(guān)依賴
Spring Boot 多環(huán)境配置
單擊【Create】按鈕
Spring Boot 多環(huán)境配置

(二)創(chuàng)建多環(huán)境配置文件

配置文件命名格式:application-xxx.yaml

此例僅演示端口號(hào)與虛擬路徑的配置,實(shí)際應(yīng)用中可以配置許多內(nèi)容

1、全局配置文件改名

將application.properties更名為application.yaml
Spring Boot 多環(huán)境配置

2、模擬開發(fā)環(huán)境

在resources里創(chuàng)建配置文件 - application-dev.yaml
Spring Boot 多環(huán)境配置

# 配置服務(wù)器
server:
  port: 8081
  servlet:
    context-path: /lzy01

3、模擬測試環(huán)境

在resources里創(chuàng)建配置文件 - application-test.yaml
Spring Boot 多環(huán)境配置

# 配置服務(wù)器
server:
  port: 8082
  servlet:
    context-path: /lzy02

4、模擬生產(chǎn)環(huán)境

在resources里創(chuàng)建配置文件 - application-prod.yaml
Spring Boot 多環(huán)境配置

# 配置服務(wù)器
server:
  port: 8083
  servlet:
    context-path: /lzy03

(三)創(chuàng)建控制器

在net.army.boot包里創(chuàng)建controller子包,在子包里創(chuàng)建ProfileController類
Spring Boot 多環(huán)境配置

package net.army.boot.controller;

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

/**
 * 作者:梁辰興
 * 日期:2023/5/31
 * 功能:概況控制器
 */
@RestController
public class ProfileController {
    @GetMapping("/welcome")
    public String welcome() {
        return "<h1 style='color: red; text-align: center'>歡迎訪問Spring Boot世界~</h1>";
    }
}

(四)采用默認(rèn)環(huán)境

默認(rèn)采用配置文件application.yaml,啟動(dòng)服務(wù)器,訪問:http://localhost:8080/welcome
Spring Boot 多環(huán)境配置

(五)指定使用環(huán)境

方式1、使用配置文件全局指定使用環(huán)境

(1) 在全局配置文件里指定當(dāng)前使用環(huán)境 - 開發(fā)環(huán)境

Spring Boot 多環(huán)境配置

spring: profiles: active: dev,表明當(dāng)前生效的環(huán)境配置文件是application-dev.yaml

啟動(dòng)項(xiàng)目,查看采用的使用環(huán)境:服務(wù)器端口號(hào)與虛擬路徑
Spring Boot 多環(huán)境配置
訪問:http://localhost:8081/lzy01/welcome
Spring Boot 多環(huán)境配置

(2) 在全局配置文件里指定當(dāng)前使用環(huán)境 - 測試環(huán)境

Spring Boot 多環(huán)境配置

spring: profiles: active: test,表明當(dāng)前生效的環(huán)境配置文件是application-test.yaml

啟動(dòng)項(xiàng)目,查看采用的使用環(huán)境:服務(wù)器端口號(hào)與虛擬路徑
Spring Boot 多環(huán)境配置
訪問:http://localhost:8082/lzy02/welcome
Spring Boot 多環(huán)境配置

(3) 在全局配置文件里指定當(dāng)前使用環(huán)境 - 生產(chǎn)環(huán)境

Spring Boot 多環(huán)境配置

spring: profiles: active: prod,表明當(dāng)前生效的環(huán)境配置文件是application-prod.yaml

啟動(dòng)項(xiàng)目,查看采用的使用環(huán)境:服務(wù)器端口號(hào)與虛擬路徑
Spring Boot 多環(huán)境配置
訪問:http://localhost:8083/lzy03/welcome
Spring Boot 多環(huán)境配置

方式2、通過命令行方式指定使用環(huán)境

(1)使用IDEA將Maven項(xiàng)目打成jar包

Maven - ProfileDemo01 - LifeCycle - package,單擊右鍵,在快捷菜單里執(zhí)行“Run Maven Build”
Spring Boot 多環(huán)境配置
Spring Boot 多環(huán)境配置

(2)在終端執(zhí)行jar包,選擇使用環(huán)境 - 開發(fā)環(huán)境
D:\Projects\SpringBootProjects\ProfileDemo01> cd target
D:\Projects\SpringBootProjects\ProfileDemo01\target> java -jar ProfileDemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

Spring Boot 多環(huán)境配置

(3)在終端執(zhí)行jar包,選擇使用環(huán)境 - 測試環(huán)境
D:\Projects\SpringBootProjects\ProfileDemo01> cd target
D:\Projects\SpringBootProjects\ProfileDemo01\target> java -jar ProfileDemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

Spring Boot 多環(huán)境配置

(4)在終端執(zhí)行jar包,選擇使用環(huán)境 - 生產(chǎn)環(huán)境
D:\Projects\SpringBootProjects\ProfileDemo01> cd target
D:\Projects\SpringBootProjects\ProfileDemo01\target> java -jar ProfileDemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

Spring Boot 多環(huán)境配置

三、使用@Profile注解進(jìn)行多環(huán)境配置

如果項(xiàng)目可能用到三種不同的數(shù)據(jù)庫環(huán)境,比如MySQL、Oracle和Sybase,那么我們?nèi)绾卫聾Profile注解來實(shí)現(xiàn)多數(shù)據(jù)庫環(huán)境配置呢?

(一)創(chuàng)建Spring Boot項(xiàng)目ProfileDemo02

使用Spring Initializr模板創(chuàng)建Spring Boot項(xiàng)目——ProfileDemo02,配置好后,單擊【Next】按鈕

Spring Boot 多環(huán)境配置選擇Spring Boot版本,添加相關(guān)依賴
Spring Boot 多環(huán)境配置

單擊【Create】按鈕

Spring Boot 多環(huán)境配置將項(xiàng)目進(jìn)行熱部署
Spring Boot 多環(huán)境配置

(二)創(chuàng)建數(shù)據(jù)庫配置接口DatabaseConfig

在net.army.boot里創(chuàng)建config子包,在子包里創(chuàng)建DatabaseConfig接口
Spring Boot 多環(huán)境配置

package net.army.boot.config;

/**
 * 作者:梁辰興
 * 日期:2023/5/31
 * 功能:數(shù)據(jù)庫配置接口
 */
public interface DatabaseConfig {
    void connect();
}

(三)創(chuàng)建三個(gè)數(shù)據(jù)庫配置實(shí)現(xiàn)類

1、創(chuàng)建數(shù)據(jù)庫配置實(shí)現(xiàn)類MySQLConfig

在net.army.boot.config包里創(chuàng)建impl子包,在子包里創(chuàng)建MySQLConfig類
Spring Boot 多環(huán)境配置

package net.army.boot.config.impl;

import net.army.boot.config.DatabaseConfig;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * 作者:梁辰興
 * 日期:2023/5/31
 * 功能:MySQL數(shù)據(jù)庫配置實(shí)現(xiàn)類
 */
@Configuration // 標(biāo)識(shí)為配置類
@Profile("mysql") // 指定使用環(huán)境名稱
public class MySQLConfig implements DatabaseConfig {

    @Override
    public void connect() {
        System.out.println("項(xiàng)目使用MySQL數(shù)據(jù)庫環(huán)境~");
    }
}

2、創(chuàng)建數(shù)據(jù)庫配置實(shí)現(xiàn)類OracleConfig

在net.army.boot.config.impl包里創(chuàng)建OracleConfig類
Spring Boot 多環(huán)境配置

package net.army.boot.config.impl;

import net.army.boot.config.DatabaseConfig;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * 作者:梁辰興
 * 日期:2023/5/31
 * 功能:Oracle數(shù)據(jù)庫配置類
 */
@Configuration // 標(biāo)識(shí)為配置類
@Profile("oracle") // 指定使用環(huán)境名稱
public class OracleConfig implements DatabaseConfig {
    @Override
    public void connect() {
        System.out.println("項(xiàng)目使用Oracle數(shù)據(jù)庫環(huán)境~");
    }
}

3、創(chuàng)建數(shù)據(jù)庫配置實(shí)現(xiàn)類SybaseConfig

在net.army.boot.config.impl包里創(chuàng)建SybaseConfig類
Spring Boot 多環(huán)境配置

package net.army.boot.config.impl;

import net.army.boot.config.DatabaseConfig;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * 作者:梁辰興
 * 日期:2023/5/31
 * 功能:Sybase數(shù)據(jù)庫配置類
 */
@Configuration // 標(biāo)識(shí)為配置類
@Profile("sybase") // 指定使用環(huán)境名稱
public class SybaseConfig implements DatabaseConfig {
    @Override
    public void connect() {
        System.out.println("項(xiàng)目使用Sybase數(shù)據(jù)庫環(huán)境~");
    }
}

(四)在全局配置文件里設(shè)置使用環(huán)境

在全局配置文件application.properties里配置使用環(huán)境
Spring Boot 多環(huán)境配置

(五)打開測試類,編寫測試方法

打開自帶的測試類ProfileDemo02ApplicationTests
Spring Boot 多環(huán)境配置
注入數(shù)據(jù)配置實(shí)體,調(diào)用數(shù)據(jù)庫配置實(shí)體的方法

package net.army.boot;

import net.army.boot.config.DatabaseConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ProfileDemo02ApplicationTests {
    @Autowired // 注入數(shù)據(jù)庫配置實(shí)體
    private DatabaseConfig databaseConfig;

    @Test
    void contextLoads() {
        // 調(diào)用數(shù)據(jù)庫配置實(shí)體的方法
        databaseConfig.connect();
    }
}

(六)運(yùn)行測試方法,查看結(jié)果

運(yùn)行contextLoads()測試方法,查看結(jié)果
Spring Boot 多環(huán)境配置Spring Boot 多環(huán)境配置

練習(xí)

1、設(shè)置使用環(huán)境 - MySQL數(shù)據(jù)庫環(huán)境,并測試

2、設(shè)置使用環(huán)境 - Sybase數(shù)據(jù)庫環(huán)境,并測試

四、隨機(jī)值設(shè)置以及參數(shù)間引用

(一)創(chuàng)建Spring Boot Web項(xiàng)目RandomSetDemo

使用Spring Initializr模板創(chuàng)建Spring Boot項(xiàng)目
Spring Boot 多環(huán)境配置
單擊【Next】按鈕,選擇Spring Boot版本,添加相關(guān)依賴
Spring Boot 多環(huán)境配置
單擊【Create】按鈕
Spring Boot 多環(huán)境配置

(二)在全局配置文件里配置隨機(jī)值

在application.properties文件里配置
Spring Boot 多環(huán)境配置

#一個(gè)隨機(jī)值
lzy.value=${random.value}
#一個(gè)隨機(jī)整數(shù)
lzy.integer=${random.int}
#一個(gè)長整型隨機(jī)數(shù)
lzy.long=${random.long}
#獲取一個(gè)隨機(jī)UUID值
lzy.uuid=${random.uuid}
#小于10的隨機(jī)整數(shù)
lzy.number.less=${random.int(10)}
#隨機(jī)產(chǎn)生102465535之間的數(shù)
lzy.number.range=${random.int[1024,65535]}

(三)在測試類里測試配置的隨機(jī)數(shù)

打開自帶的測試類 - RandomSetDemoApplicationTests
Spring Boot 多環(huán)境配置

1、測試隨機(jī)數(shù)my.number

注入配置文件里的屬性

輸出配置文件里的屬性

package net.army.boot;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class RandomSetDemoApplicationTests {
    // 注入配置文件里的隨機(jī)值
    @Value("${lzy.value}")
    private String value;

    @Test
    public void testRandomValue() {
        // 輸出配置文件里的隨機(jī)值
        System.out.println("隨機(jī)值:" + value);
    }
}

運(yùn)行testRandonValue()方法,查看結(jié)果
Spring Boot 多環(huán)境配置大家可以看到,產(chǎn)生的是32位的十六進(jìn)制數(shù)對應(yīng)的字符串,思考一下,能否將其變成128位的二進(jìn)制串?

2、測試隨機(jī)整數(shù)my.integer

注入配置文件里的屬性

輸出配置文件里的屬性
Spring Boot 多環(huán)境配置
運(yùn)行testRandomInteger()方法,查看結(jié)果
Spring Boot 多環(huán)境配置
再運(yùn)行testRandomInteger()方法,查看結(jié)果
Spring Boot 多環(huán)境配置

練習(xí)

1、測試長整型隨機(jī)數(shù)my.long

Spring Boot 多環(huán)境配置

2、測試隨機(jī)UUID值my.uuid

Spring Boot 多環(huán)境配置

3、測試小于10的隨機(jī)整數(shù)my.number.less

Spring Boot 多環(huán)境配置
Spring Boot 多環(huán)境配置

4、測試1024至65535之間的隨機(jī)整數(shù)my.number.rangeSpring Boot 多環(huán)境配置

(四)演示參數(shù)間的引用

在appication.properties文件里,后定義的屬性可引用前面定義的屬性

定義三個(gè)屬性year、month和day

定義屬性user.name

定義屬性user.birthday,引用屬性year、month和day
Spring Boot 多環(huán)境配置

# 配置日期數(shù)據(jù)
year=2001
month=8
day=28
# 配置用戶信息
user.name=梁辰興
user.birthday=${year}年${month}月${day}

在測試類里編寫testUser()方法
Spring Boot 多環(huán)境配置
運(yùn)行testUser()方法,查看結(jié)果
Spring Boot 多環(huán)境配置
有點(diǎn)問題,明明在配置文件里,user.name=梁辰興,但結(jié)果并非如此,原因何在?

user.name得到是系統(tǒng)用戶名,而不是配置文件里定義的用戶名。

修改配置文件,不使用user前綴,改用person前綴
Spring Boot 多環(huán)境配置
修改測試代碼
Spring Boot 多環(huán)境配置
運(yùn)行testUser()方法,查看結(jié)果
Spring Boot 多環(huán)境配置文章來源地址http://www.zghlxwxcb.cn/news/detail-477938.html

到了這里,關(guān)于Spring Boot 多環(huán)境配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式操作系統(tǒng)的必要性及重要性

    總有人在各個(gè)平臺(tái)留言或者私信問LAXCUS分布式操作系統(tǒng)的各種問題,尤其是關(guān)于分布式操作系統(tǒng)的應(yīng)用市場、價(jià)值、意義之類的問題。我們團(tuán)隊(duì)做LAXCUS分布式操作系統(tǒng),也不是頭腦憑空發(fā)熱,是基于我們之前的大量產(chǎn)品設(shè)計(jì)、經(jīng)驗(yàn)逐漸一步步做起來。當(dāng)今已經(jīng)進(jìn)入智能時(shí)代,

    2024年02月08日
    瀏覽(23)
  • typescript的必要性及使用

    作為一個(gè)前端語言,Javascript從最初只是用來寫頁面,到如今的移動(dòng)終端、后端服務(wù)、神經(jīng)網(wǎng)絡(luò)等等,它變得幾乎無處不在。如此廣闊的應(yīng)用領(lǐng)域,對語言的安全性、健壯性以及可維護(hù)性都有了更高的要求。盡管ECMAScript標(biāo)準(zhǔn)在近幾年有了長足的進(jìn)步,但是在類型檢查方面依然

    2024年02月11日
    瀏覽(15)
  • 實(shí)驗(yàn)室信息化建設(shè)必要性

    市場監(jiān)管總局2021年9月14日發(fā)布《關(guān)于進(jìn)一步深化改革促進(jìn)檢驗(yàn)檢測行業(yè)做優(yōu)做強(qiáng)的指導(dǎo)意見》明確到2025年,檢驗(yàn)檢測體系更加完善,創(chuàng)新能力明顯增強(qiáng),發(fā)展環(huán)境持續(xù)優(yōu)化,行業(yè)總體技術(shù)能力、管理水平、服務(wù)質(zhì)量和公信力顯著提升,涌現(xiàn)一批規(guī)模效益好、技術(shù)水平高、行

    2024年02月11日
    瀏覽(22)
  • 圖文講解Redis延時(shí)雙刪原因及必要性

    圖文講解Redis延時(shí)雙刪原因及必要性

    目錄 一、前言 二、常見更新策略 2.1 先刪緩存,再更新數(shù)據(jù)庫 2.2 先更新數(shù)據(jù)庫,再刪除緩存 2.3 普通雙刪 2.4 延遲雙刪 三、是否必要建議 我們在實(shí)際項(xiàng)目中經(jīng)常會(huì)使用到Redis緩存用來緩解數(shù)據(jù)庫壓力,但是當(dāng)更新數(shù)據(jù)庫時(shí),如何保證緩存及數(shù)據(jù)庫一致性,一般我們采用延時(shí)

    2024年02月16日
    瀏覽(20)
  • 暴雨災(zāi)害頻發(fā),防洪評價(jià)與洪水建模預(yù)測的必要性

    暴雨災(zāi)害頻發(fā),防洪評價(jià)與洪水建模預(yù)測的必要性

    防洪評價(jià)全流程與報(bào)告編制及HEC-RAS水動(dòng)力模型實(shí)際工程應(yīng)用 核心優(yōu)勢: 1、根據(jù)防評導(dǎo)則要求,制定及編排課程內(nèi)容。較以往其他不同,本課程實(shí)現(xiàn)了全過程、全階段的防評內(nèi)容培訓(xùn), 共6全天授課,是目前關(guān)于防洪評價(jià)最詳細(xì)的課程 。學(xué)員參加本次課程后,可直接上手,可

    2024年02月12日
    瀏覽(21)
  • 軟件安全測試包含哪些內(nèi)容和方法?安全測試報(bào)告的必要性

    軟件安全測試包含哪些內(nèi)容和方法?安全測試報(bào)告的必要性

    軟件安全測試是一種通過模擬真實(shí)攻擊的方式,對軟件系統(tǒng)進(jìn)行全面的安全性評估和測試,以發(fā)現(xiàn)潛在的安全漏洞和弱點(diǎn),是確保軟件系統(tǒng)安全性的重要措施。在進(jìn)行軟件安全測試時(shí),我們需要了解測試的內(nèi)容和方法,以及為什么進(jìn)行安全測試報(bào)告的必要性。 一、軟件安全測

    2024年02月09日
    瀏覽(36)
  • 談一談前端私有組件庫的必要性(組件庫系列一)

    工作多年遇到各種各樣的項(xiàng)目,往往在固定的崗位或者說固定的業(yè)務(wù)部門,同類型的項(xiàng)目出現(xiàn)的頻率極高。很多同學(xué)對于組件庫這個(gè)概念更多的使用場景,可能是拿到開源的一些組件庫開箱即用。如PC端的ElementUI、Ant-design、移動(dòng)端的vant之類的。這些開源的組件庫能夠很大程度

    2024年02月07日
    瀏覽(20)
  • 企業(yè)開展開源安全治理必要性及可行性詳細(xì)分析,瘋狂漲知識(shí)

    企業(yè)開展開源安全治理必要性及可行性詳細(xì)分析,瘋狂漲知識(shí)

    面對以上五個(gè)嚴(yán)重的挑戰(zhàn),從企業(yè)解決的角度來說,可以聚焦為三個(gè)主要應(yīng)對舉措: 多做行業(yè)頭部最佳實(shí)踐調(diào)研:其實(shí)近兩年,互聯(lián)網(wǎng)、金融、運(yùn)營商、智能制造等多個(gè)行業(yè)的頭部企業(yè),還是有不少企業(yè)在開源安全治理方面已經(jīng)有自己的一些最佳實(shí)踐和成功經(jīng)驗(yàn)了。雖然說不

    2024年04月11日
    瀏覽(22)
  • 高防服務(wù)器面對DDOS攻擊的威脅有何必要性

    高防服務(wù)器面對DDOS攻擊的威脅有何必要性?分布式拒絕服務(wù)(DDoS)攻擊是一種常見而危險(xiǎn)的網(wǎng)絡(luò)攻擊形式,它可以使目標(biāo)網(wǎng)絡(luò)服務(wù)器過載,導(dǎo)致服務(wù)不可用。本文將深入探討DDoS攻擊的威脅,以及高防服務(wù)器在抵御這種攻擊中的重要性。了解DDoS攻擊的威脅和采取相應(yīng)的防護(hù)措

    2024年02月10日
    瀏覽(23)
  • 計(jì)算機(jī)網(wǎng)絡(luò)——計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)(2/4)-分層的必要性(五層協(xié)議原理體系結(jié)構(gòu))

    計(jì)算機(jī)網(wǎng)絡(luò)——計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)(2/4)-分層的必要性(五層協(xié)議原理體系結(jié)構(gòu))

    目錄 物理層 數(shù)據(jù)鏈路層 網(wǎng)絡(luò)層 運(yùn)輸層 應(yīng)用層 計(jì)算機(jī)網(wǎng)絡(luò)是個(gè)非常復(fù)雜的系統(tǒng)。 早在最初的ARPANET設(shè)計(jì)時(shí)就提出了分層的設(shè)計(jì)理念。 \\\"分層\\\"可將龐大而復(fù)雜的問題,轉(zhuǎn)化為若干較小的局部問題,而這些較小的局部問題就比較易于研究和處理。 下面,我們以五層原理結(jié)構(gòu)體系

    2024年02月07日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包