服务器之家

服务器之家 > 正文

Java之Spring认证使用Profile配置运行环境讲解

时间:2021-10-28 10:56     来源/作者:长安紫薯

Spring提供了@Profile注解来解决程序在不同运行环境时候的配置差别。

项目开发时候大多包含:开发、测试、上线运行几个过程,在每个过程中软件的工作环境一般多少有些差别,比如:在开发阶段利用本地数据库、测试阶段采用测试数据库、在上线运行阶段使用生产数据库。这些差别如果采用了手工维护就会存在各种问题:效率低下、容易发生人为因素意外错误。

利用Spring提供的@Profile注解就可以定义程序不同的运行场景配置,配置以后在启动程序时候给定不同的启动参数就可以灵活的切换运行场景,不再需要人工干预,这样就可以大大提升开发效率。

Java之Spring认证使用Profile配置运行环境讲解

以配置开发环和生产境数据源为例子,具体说明使用步骤:

在Spring配置文件中利用@Profile声明开发环境和生产环境使用的数据源:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Configuration
public class DataSourceConfig {
    @Bean(name="dataSource") //重写BeanID
    @Profile("dev") //配置开发环境使用的数据源
    public DataSource dataSourceForDev() {
        DruidDataSource dataSource = new DruidDataSource();
        ...
        return dataSource;
    }
    @Bean(name="dataSource")//重写BeanID
    @Profile("production")//配置生产环境使用的数据源
    public DataSource dataSourceForProd() {
        DruidDataSource dataSource = new DruidDataSource();
        ...
        return dataSource;
    }
}

其中“dev”表示开发环境,“production”表示生产环境,显然有两个BeanID是“dataSource”的数据源Bean对象,这两个对象不会同时初始化,Spring会根据激活的Profile属性初始化其中一个数据源Bean对象。
使用如下启动命令参数-Dspring.profiles.active=dev就可以设置当前激活的Profile是发环境“dev”,此时Spring会初始化属于开发环境的数据源Bean对象:

?
1
java -Dspring.profiles.active=dev -jar demo.jar

或者在SpringBoot的启动类中使用系统属性设置激活的Profile:

?
1
System.setProperty("spring.profiles.active" , "dev"); SpringApplication.run(AppConfig.class);

在测试时候可以使用 @ActiveProfiles注解设置当前激活的Profile。

到此这篇关于Java之Spring认证使用Profile配置运行环境讲解的文章就介绍到这了,更多相关Java之Spring认证使用Profile配置内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/nutony/article/details/118755869

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部