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

解析Spring Boot中的Profile:配置文件與代碼的雙重掌控

這篇具有很好參考價(jià)值的文章主要介紹了解析Spring Boot中的Profile:配置文件與代碼的雙重掌控。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

創(chuàng)建一個(gè)spring boot 項(xiàng)目

基于 Spring Boot 創(chuàng)建 Web 應(yīng)用程序的方法有很多,我們選擇在idea中直接進(jìn)行創(chuàng)建,服務(wù)器URL選擇Spring Initializer 網(wǎng)站,類型選擇Maven項(xiàng)目,java版本根據(jù)jdk版本進(jìn)行選擇。
解析Spring Boot中的Profile:配置文件與代碼的雙重掌控,JavaEE,spring boot,后端,java,spring,學(xué)習(xí)
然后添加相應(yīng)依賴以及選擇spring boot版本

解析Spring Boot中的Profile:配置文件與代碼的雙重掌控,JavaEE,spring boot,后端,java,spring,學(xué)習(xí)
接下來(lái)我們寫一個(gè)Controller

@RestController
@RequestMapping("/user")
public class UserController {
    // 請(qǐng)求映射,用于處理請(qǐng)求
    @RequestMapping("/zcx")
    public Userinfo getUserInfo() {
        // 創(chuàng)建Userinfo對(duì)象
        Userinfo userinfo = new Userinfo();
        // 設(shè)置age屬性
        userinfo.setAge("45");
        // 設(shè)置name屬性
        userinfo.setName("zcx-yyds");
        // 返回Userinfo對(duì)象
        return userinfo;
    }

}

現(xiàn)在我們需要對(duì)這個(gè)應(yīng)用程序進(jìn)行打包,使用idea上的打包工具,點(diǎn)擊package進(jìn)行打包
解析Spring Boot中的Profile:配置文件與代碼的雙重掌控,JavaEE,spring boot,后端,java,spring,學(xué)習(xí)
我們將得到一個(gè)springboot1-0.0.1-SNAPSHOT.jar文件,而這個(gè) jar 文件就是可以直接運(yùn)行的可執(zhí)行文件,內(nèi)置了 Tomcat Web 服務(wù)器。我們直接使用如下命令進(jìn)行運(yùn)行這個(gè)Spring boot程序。

java -jar springboot1-0.0.1-SNAPSHOT.jar

然后我們使用postman來(lái)進(jìn)行項(xiàng)目訪問(wèn)測(cè)試,得到如下返回結(jié)果,證明我們的程序服務(wù)已經(jīng)啟動(dòng)成功了。

解析Spring Boot中的Profile:配置文件與代碼的雙重掌控,JavaEE,spring boot,后端,java,spring,學(xué)習(xí)
現(xiàn)在我們已經(jīng)明白如何構(gòu)建、打包以及運(yùn)行一個(gè)簡(jiǎn)單的 Web 應(yīng)用程序了。

spring boot 中的配置體系

在 Spring Boot 中,其核心設(shè)計(jì)理念是對(duì)配置信息的管理采用約定優(yōu)于配置,也就是說(shuō)約定大于配置。
Spring Boot中的Profile是一個(gè)非常有用的功能,它可以讓我們?cè)诓恍薷拇a的情況下,通過(guò)配置文件來(lái)控制程序的行為。
在Spring Boot中,Profile是一種用于控制應(yīng)用程序行為的機(jī)制。通過(guò)使用不同的Profile,我們可以根據(jù)不同的環(huán)境或場(chǎng)景來(lái)加載不同的配置信息,從而實(shí)現(xiàn)應(yīng)用程序的靈活配置。

配置文件與 Profile

根據(jù)環(huán)境的不同而存在很多套配置。假設(shè)我們存在如下所示的配置文件集合:
解析Spring Boot中的Profile:配置文件與代碼的雙重掌控,JavaEE,spring boot,后端,java,spring,學(xué)習(xí)
配置文件application-dev.properties中的代碼為:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/dev_db
spring.datasource.username=root 
spring.datasource.password=666666

配置文件application-prod.properties中的代碼為:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/prod_db
spring.datasource.username=root 
spring.datasource.password=666666

常見的配置文件命名方式有以下幾種:
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

在 Spring Boot 中,我們可以在主 application.properties 中使用如下的配置方式來(lái)激活當(dāng)前所使用的 Profile:

spring.profiles.active = dev

當(dāng)然還有以下幾種方式啟動(dòng)Profile:

  1. 在主 application.properties指定要激活的Profile。
spring.profiles.active = dev
  1. 在啟動(dòng)命令中指定Profile。
java -jar springboot1-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
  1. 在程序中顯示設(shè)置Profile。例如:
@SpringBootApplication
public class Springboot1Application {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Springboot1Application.class);
        app.setAdditionalProfiles("dev");
        app.run(args);
    }
}

這將激活名為prod的Profile。

代碼控制與Profile

在 Spring Boot 中,Profile 這一概念的應(yīng)用場(chǎng)景還包括動(dòng)態(tài)控制代碼執(zhí)行流程。為此,我們需要使用 @Profile 注解,Profile注解可以用于指定某個(gè)類或方法在特定的配置環(huán)境下生效。只要是被@Component@Configuration注解的類都可以使用@Profile注解。
使用一個(gè)示例來(lái)了解Profile注解的使用方法:

@Configuration
public class DataSourceConfig {
    @Bean
    @Profile("dev")
    public DataSource devDataSource() {

        //創(chuàng)建 dev 環(huán)境下的 DataSource
        return null;
    }

    @Bean()
    @Profile("prod")
    public DataSource prodDataSource() {

        //創(chuàng)建 prod 環(huán)境下的 DataSource
        return null;
    }

}

通過(guò)這種方式,可以達(dá)到與使用配置文件相同的效果。
我們來(lái)看一個(gè)更為詳細(xì)具體的例子:

  1. 創(chuàng)建一個(gè)接口 MyService
public interface MyService {
    void doSomething();
}
  1. 創(chuàng)建兩個(gè)不同的實(shí)現(xiàn)類,分別用于不同的配置文件。

@Component
@Profile("prod")
public class ProdMyService implements MyService {
    @Override
    public void doSomething() {
        System.out.println("Prod service is running.");
    }
}

@Component
@Profile("dev")
public class DevMyService implements MyService {
    @Override
    public void doSomething() {
        System.out.println("Dev service is running.");
    }
}

上述示例中,我們創(chuàng)建了兩個(gè)不同的實(shí)現(xiàn)類,一個(gè)用于 development 配置文件,另一個(gè)用于 production 配置文件。@Profile 注解分別標(biāo)記了它們,以便 Spring 知道在哪個(gè)配置文件下激活它們。
3. 在 Spring 配置文件(例如 application.propertiesapplication.yml)中指定要激活的配置文件,例如: application.properties

spring.profiles.active=prod

spring.profiles.active 設(shè)置為 development,表示我們希望激活的開發(fā)配置文件。
4. 創(chuàng)建一個(gè)啟動(dòng)類,以演示如何使用 MyService

@SpringBootApplication
public class Springboot1Application implements CommandLineRunner {

    // 聲明一個(gè)注入的MyService對(duì)象
    @Autowired
    private MyService myService;

    // 聲明一個(gè)名為run的方法,用來(lái)啟動(dòng)Spring應(yīng)用
    public static void main(String[] args) {
        // 調(diào)用SpringApplication的run方法,傳入Springboot1Application類和args參數(shù)
        SpringApplication.run(Springboot1Application.class, args);
    }

    // 方法run,用來(lái)執(zhí)行Spring應(yīng)用的業(yè)務(wù)邏輯
    @Override
    public void run(String... args) {
        // 調(diào)用myService的doSomething方法
        myService.doSomething();
    }
}

解析Spring Boot中的Profile:配置文件與代碼的雙重掌控,JavaEE,spring boot,后端,java,spring,學(xué)習(xí)
通過(guò)結(jié)果我們發(fā)現(xiàn)運(yùn)行這個(gè)應(yīng)用程序時(shí),它會(huì)根據(jù)配置文件中的 spring.profiles.active 屬性來(lái)選擇相應(yīng)的實(shí)現(xiàn)類。
如果你還想了解更多內(nèi)容請(qǐng)參考spring boot官網(wǎng)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-708285.html

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

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

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

相關(guān)文章

  • 【Spring Boot】自動(dòng)配置及重要注解解析

    【Spring Boot】自動(dòng)配置及重要注解解析

    1、springboot自動(dòng)配置了哪些功能 1)tomcat的自動(dòng)配置 引入了tomcat的相關(guān)依賴 2)自動(dòng)配置springmvc及常用功能 我們?cè)谥鲉?dòng)類中加兩行代碼,查看一下spring boot加載了哪些組件 通過(guò)在控制臺(tái)輸出中搜索,我們可以發(fā)現(xiàn)轉(zhuǎn)發(fā)請(qǐng)求的dispatcherServlet、解決亂碼的characterEncodingFilter還有視

    2023年04月09日
    瀏覽(26)
  • 【Spring Boot】Spring Boot配置文件詳情

    【Spring Boot】Spring Boot配置文件詳情

    ?Spring Boot是一個(gè)開源的Java框架,用于快速構(gòu)建應(yīng)用程序和微服務(wù)。它基于Spring Framework,通過(guò)自動(dòng)化配置和約定優(yōu)于配置的方式,使開發(fā)人員可以更快地啟動(dòng)和運(yùn)行應(yīng)用程序。Spring Boot提供了許多開箱即用的功能和插件,包括嵌入式Web服務(wù)器、安全性、數(shù)據(jù)訪問(wèn)、緩存、測(cè)試

    2024年02月12日
    瀏覽(21)
  • 深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正確使用

    深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正確使用

    ??深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正確使用 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁(yè):IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平

    2024年02月04日
    瀏覽(24)
  • Spring —— Spring Boot 配置文件

    Spring —— Spring Boot 配置文件

    JavaEE傳送門 JavaEE Spring —— Bean 作用域和生命周期 Spring —— Spring Boot 創(chuàng)建和使用 如果沒(méi)有配置信息, Spring Boot 項(xiàng)目就不能連接和此操作數(shù)據(jù)庫(kù), 甚至是不能保存可以用于排查問(wèn)題的關(guān)鍵日志, 配置文件的作用是非常重要的. 系統(tǒng)使用的配置文件 (系統(tǒng)配置文件), 如端口號(hào)的配

    2023年04月09日
    瀏覽(20)
  • spring boot中的多環(huán)境配置

    的作用是為了啟動(dòng)某個(gè)環(huán)境,兩個(gè)作用基本一致, 環(huán)境定義如下: 或者是查找application-dev.yml這個(gè)文件的所有配置 加載問(wèn)價(jià),使用的是import,注意語(yǔ)法:

    2024年02月06日
    瀏覽(19)
  • Spring Boot 中的 CSRF 保護(hù)配置

    Spring Boot 中的 CSRF 保護(hù)配置

    CSRF(Cross-Site Request Forgery)是一種網(wǎng)絡(luò)攻擊,它利用已認(rèn)證用戶的身份來(lái)執(zhí)行未經(jīng)用戶同意的操作。Spring Boot 提供了內(nèi)置的 CSRF 保護(hù)機(jī)制,可以幫助您防止這種類型的攻擊。本文將介紹如何在 Spring Boot 中配置和使用 CSRF 保護(hù)。 CSRF 攻擊是一種利用用戶已經(jīng)在網(wǎng)站上進(jìn)行了身份

    2024年02月07日
    瀏覽(66)
  • Spring Boot中的Elasticsearch自動(dòng)配置

    Spring Boot中的Elasticsearch自動(dòng)配置

    Elasticsearch是一個(gè)基于Lucene的分布式全文搜索引擎,它在搜索、分析等方面具有出色的表現(xiàn)。Spring Boot中的Elasticsearch自動(dòng)配置為我們提供了一種快速集成Elasticsearch的方式,使我們可以在Spring Boot應(yīng)用程序中輕松地使用Elasticsearch。 本文將介紹Spring Boot中的Elasticsearch自動(dòng)配置的作

    2024年02月12日
    瀏覽(28)
  • 深入解析Spring Boot與MySQL在醫(yī)院信息管理系統(tǒng)中的應(yīng)用

    深入解析Spring Boot與MySQL在醫(yī)院信息管理系統(tǒng)中的應(yīng)用

    ??計(jì)算機(jī)編程指導(dǎo)師 ??個(gè)人介紹:自己非常喜歡研究技術(shù)問(wèn)題!專業(yè)做Java、Python、微信小程序、安卓、大數(shù)據(jù)、爬蟲、Golang、大屏等實(shí)戰(zhàn)項(xiàng)目。 ??實(shí)戰(zhàn)項(xiàng)目:有源碼或者技術(shù)上的問(wèn)題歡迎在評(píng)論區(qū)一起討論交流! ?? Java實(shí)戰(zhàn) | SpringBoot/SSM Python實(shí)戰(zhàn)項(xiàng)目 | Django 微信小

    2024年01月23日
    瀏覽(17)
  • Spring Boot 中的 RabbitMQ 消息發(fā)送配置

    Spring Boot 中的 RabbitMQ 消息發(fā)送配置

    RabbitMQ 是一個(gè)開源的消息代理系統(tǒng),它實(shí)現(xiàn)了 AMQP(高級(jí)消息隊(duì)列協(xié)議)標(biāo)準(zhǔn),并支持多種消息傳輸協(xié)議。它具有高可用性、可擴(kuò)展性和可靠性,廣泛應(yīng)用于分布式系統(tǒng)、微服務(wù)架構(gòu)、異步任務(wù)處理、日志收集等場(chǎng)景。 RabbitMQ 的核心概念包括: Producer:消息生產(chǎn)者,負(fù)責(zé)將消

    2024年02月07日
    瀏覽(22)
  • Spring Boot 中的自動(dòng)配置(autoconfigure)

    Spring Boot 中的自動(dòng)配置(autoconfigure)

    文中部分圖片來(lái)源為 動(dòng)力節(jié)點(diǎn)-王鶴老師的Spring Boot3.0 視頻講解中。 自動(dòng)配置:從類路徑中,搜索相關(guān)的 jar,根據(jù) jar 的內(nèi)容,嘗試創(chuàng)建所需的對(duì)象。例如,如果有 MyBatis .jar,Spring Boot 會(huì)嘗試創(chuàng)建 DataSource(根據(jù)配置文件中的url,username,password)連接數(shù)據(jù)庫(kù)。還需要?jiǎng)?chuàng)建 S

    2024年01月25日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包