文档章节

Java类中@Profile注解 springboot切换不同环境配置

weiliu007
 weiliu007
发布于 2017/04/09 11:59
字数 238
阅读 3K
收藏 1

精选30+云产品,助力企业轻松上云!>>>

下面2个不同的类实现了同一个接口,@Profile注解指定了具体环境

// 接口定义
public interface SendMessage {

    // 发送短信方法定义
    public void send();

}

// Dev 环境实现类
@Component
@Profile("dev")
public class DevSendMessage implements SendMessage {

    @Override
    public void send() {
        System.out.println(">>>>>>>>Dev Send()<<<<<<<<");
    }

}

// Stg环境实现类
@Component
@Profile("stg")
public class StgSendMessage implements SendMessage {

    @Override
    public void send() {
        System.out.println(">>>>>>>>Stg Send()<<<<<<<<");
    }

}

// 启动类
@SpringBootApplication
public class ProfiledemoApplication {

    @Value("${app.name}")
    private String name;

    @Autowired
    private SendMessage sendMessage;

    @PostConstruct
    public void init(){
        sendMessage.send();// 会根据profile指定的环境实例化对应的类
    }

}

在启动程序的时候通过添加 –spring.profiles.active={profile} 来指定具体使用的配置 
例如我们执行 java -jar demo.jar –spring.profiles.active=dev 那么下面三个文件中的内容将被如何应用? 
Spring Boot 会先加载默认的配置文件,然后使用具体指定的profile中的配置去覆盖默认配置。

application.properties

app.name=MyApp
server.port=8080
spring.profiles.active=dev

application-dev.properties

server.port=8081

application-stg.properties

server.port=8082

 

weiliu007
粉丝 17
博文 171
码字总数 84825
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
Spring-IOC实现【02-其他实现方式】

接上文Spring-IOC实现【01-XML配置方式】 Java配置方式 SpringBoot流行之后,Java 配置开始被广泛使用。Java配置本质上,就是使用一个Java类去代替xml配置,这种配置方式在SpringBoot中得到了...

osc_pssaw7yw
2019/01/23
2
0
SpringBoot在启动时的多环境配置以及加载顺序

  通常我们在开发完成一个SpringBoot项目时,总是要打包部署的。   在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务。   命令java -jar 除了启动应用之外...

osc_31yjtdow
2019/03/18
5
0
Spring boot Value注入 未整理 待完善

Springboot 热部署 Springboot为开发者提供了一个名叫 spring-boot-devtools来使Springboot应用支持热部署,提供开发者的开发效率,无需手动重启Spring Boot应用 <!-- https://mvnrepository...

osc_vwv0jnr8
2019/02/18
2
0
Spring Boot配置

一.配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的: application.properties application.yml 配置文件的作用:修改SpringBoot自动配置的默认值(SpringBoot在底层都给我们...

osc_pqzfxki9
2019/02/26
0
0
SpingBoot之多Profile文件

1、我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml 默认使用application.properties的配置;   在我们的项目开发、测试、上线过程中,不可避免的需要反复...

osc_b7xn6aes
2018/10/11
4
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么JavaScript仅在IE中打开开发人员工具一次后才能工作?

问题: IE9 Bug - JavaScript only works after opening developer tools once. IE9错误-JavaScript仅在打开开发人员工具一次后才能工作。 Our site offers free pdf downloads to users, a......

javail
21分钟前
10
0
动态规划:LC198.打家劫舍

题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入...

曦鱼violet
34分钟前
30
0
OSChina 周一乱弹 —— 南方水到底多深

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: Various Artists-用印度乐器演奏苏联国歌(洛天侬 remix) 手机党少年们想听歌,请...

小小编辑
今天
56
0
快递100云平台的安全措施--API限流

2、热点参数限流 注意: 若 entry 的时候传入了热点参数,那么 exit 的时候也一定要带上对应的参数(exit(count, args)),否则可能会有统计错误。 3、通过 ParamFlowRuleManager 的 loadRu...

bykk
今天
19
0
在Bash中重定向stderr和stdout - Redirect stderr and stdout in Bash

问题: I want to redirect both stdout and stderr of a process to a single file. 我想将一个进程的stdout和stderr都重定向到一个文件。 How do I do that in Bash? 我该如何在Bash中做到...

富含淀粉
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部