您現在的位置是:網站首頁>PythonSpringBoot中多環境配置和@Profile注解示例詳解

SpringBoot中多環境配置和@Profile注解示例詳解

宸宸2024-04-22Python70人已圍觀

給尋找編程代碼教程的朋友們精選了相關的編程文章,網友蔣志澤根據主題投稿了本篇教程內容,涉及到SpringBoot、多環境配置、SpringBoot、@Profile注解多環境配置、SpringBoot 多環境配置相關內容,已被482網友關注,下麪的電子資料對本篇知識點有更加詳盡的解釋。

SpringBoot 多環境配置

一、使用@Profile

1.1、@Profile脩飾類

開發環境

package com.example.demo.config;

import com.example.demo.entity.AppData;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("development")
public class DevelopmentConfig {
    @Bean
    public AppData getAppData() {
        AppData appData = new AppData();
        appData.setEnvironmentName("development");

        return appData;
    }
}

正式環境

package com.example.demo.config;

import com.example.demo.entity.AppData;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("production")
public class ProductionConfig {

    @Bean
    public AppData getAppData() {
        AppData appData = new AppData();
        appData.setEnvironmentName("production");

        return appData;
    }
}

1.2、@Profile脩飾方法

package com.example.demo.config;

import com.example.demo.entity.AppData;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
public class AppConfig {
    // 開發環境
    @Bean("appConfigData")
    @Profile("development")
    public AppData getDevelopmentAppData() {
        AppData appData = new AppData();
        appData.setEnvironmentName("app development");

        return appData;
    }

    // 正式環境
    @Bean("appConfigData")
    @Profile("production")
    public AppData getProductionAppData() {
        AppData appData = new AppData();
        appData.setEnvironmentName("app production");

        return appData;
    }
}

1.3、@Profile脩飾注解

1、定義注解

開發環境

package com.example.demo.annotation;

import org.springframework.context.annotation.Profile;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Profile("development")
public @interface Development {
}

正式環境

package com.example.demo.annotation;

import org.springframework.context.annotation.Profile;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Profile("production")
public @interface Production {
}

2、使用注解

package com.example.demo.config;

import com.example.demo.annotation.Development;
import com.example.demo.annotation.Production;
import com.example.demo.entity.AppData;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {
    // 開發環境
    @Bean("appConfigData")
    @Development
    public AppData getDevelopmentAppData() {
        AppData appData = new AppData();
        appData.setEnvironmentName("app development");

        return appData;
    }

    // 正式環境
    @Bean("appConfigData")
    @Production
    public AppData getProductionAppData() {
        AppData appData = new AppData();
        appData.setEnvironmentName("app production");

        return appData;
    }
}

二、激活@Profile

2.1、配置文件方式激活@Profile

application.properties

spring.profiles.active=production 

application.yml

spring:
  profiles:
    active: production

2.2、命令行方式激活@Profile

java -jar target/demo-0.0.1-SNAPSHOT.jar  --spring.profiles.active=production

三、多Profile資源文件

配置文件

# 公共配置
application.properties

# development
application-development.properties

# production
application-production.properties

application.properties

# 激活配置文件
spring.profiles.active=production

application-development.properties

server.port=8081

application-production.properties

server.port=8082

完整代碼 https://github.com/mouday/spring-boot-demo/tree/master/SpringBoot-Profile

蓡考
Springboot中的@Profile注解

到此這篇關於SpringBoot中多環境配置和@Profile注解的文章就介紹到這了,更多相關SpringBoot 多環境配置內容請搜索碼辳之家以前的文章或繼續瀏覽下麪的相關文章希望大家以後多多支持碼辳之家!

我的名片

網名:星辰

職業:程式師

現居:河北省-衡水市

Email:[email protected]