电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

spring boot實現profiles動態切換的示例

瀏覽:100日期:2023-08-09 09:33:09

具體做法:

1、首先在pom中添加profiles:

<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <spring.profiles.active>dev</spring.profiles.active> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency> </dependencies> </profile> <profile> <id>prod</id> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency> </dependencies> <properties> <spring.profiles.active>prod</spring.profiles.active> </properties> </profile></profiles>

dev指開發模式,prod指生產模式,如需其他模式,只需要添加profile即可.

2、在pom.xml的build中添加plugin:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${maven-resources-plugin.version}</version> <executions> <execution> <id>default-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>target/classes</outputDirectory> <useDefaultDelimiters>false</useDefaultDelimiters> <delimiters><delimiter>#</delimiter> </delimiters> <resources><resource> <directory>src/main/resources/</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.yml</include> </includes></resource><resource> <directory>src/main/resources/</directory> <filtering>false</filtering> <excludes> <exclude>**/*.xml</exclude> <exclude>**/*.yml</exclude> </excludes></resource> </resources> </configuration> </execution> </executions></plugin>

該配置用來在打包的時候修改配置文件。

3、編寫DefaultProfileUtil工具類來添加默認啟動配置文件:

import org.springframework.boot.SpringApplication;import org.springframework.core.env.Environment; import java.util.HashMap;import java.util.Map; /** * Utility class to load a Spring profile to be used as default * when there is no <code>spring.profiles.active</code> set in the environment or as command line argument. * If the value is not available in <code>application.yml</code> then <code>dev</code> profile will be used as default. */public final class DefaultProfileUtil { private static final String SPRING_PROFILE_DEFAULT = 'spring.profiles.default'; private DefaultProfileUtil(){ } /** * Set a default to use when no profile is configured. * * @param app the spring application */ public static void addDefaultProfile(SpringApplication app) { Map<String, Object> defProperties = new HashMap<>(); /* * The default profile to use when no other profiles are defined * This cannot be set in the <code>application.yml</code> file. * See https://github.com/spring-projects/spring-boot/issues/1219 */ defProperties.put(SPRING_PROFILE_DEFAULT, Constants.SPRING_PROFILE_DEVELOPMENT); app.setDefaultProperties(defProperties); System.out.println(app); } /** * Get the profiles that are applied else get default profiles. */ public static String[] getActiveProfiles(Environment env) { String[] profiles = env.getActiveProfiles(); if (profiles.length == 0) { return env.getDefaultProfiles(); } return profiles; }}

public class Constants { public static final String SPRING_PROFILE_DEVELOPMENT = 'dev'; public static final String SPRING_PROFILE_PRODUCTION = 'prod'; private Constants() { }}

4、修改application.yml配置文件,添加(采用application.properties文件):

spring: profiles: active: #spring.profiles.active#

maven的構建的時候會替換#spring.profiles.active#

5、修改項目的啟動類:

@SpringBootApplicationpublic class Demo1Application { private static final Logger log = LoggerFactory.getLogger(Demo1Application.class); public static void main(String[] args) { SpringApplication app = new SpringApplication(Demo1Application.class); DefaultProfileUtil.addDefaultProfile(app); Environment env = app.run(args).getEnvironment(); log.info('n----------------------------------------------------------nt' + 'Application ’{}’ is running! Access URLs:nt' + 'Local: tthttp://localhost:{}nt' + '----------------------------------------------------------', env.getProperty('spring.application.name'), env.getProperty('server.port')); }}

以上修改完成之后,在啟動的時候會顯示:The following profiles are active: dev 默認dev模式切換成功。

spring boot實現profiles動態切換的示例

6、構建項目:

采用mvn clean package -Pprod命令構建,最后的配置文件會被改成:

spring boot實現profiles動態切換的示例

以上就是spring boot實現profiles動態切換的示例的詳細內容,更多關于spring boot實現profiles動態切換的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 清管器,管道清管器,聚氨酯发泡球,清管球 - 承德嘉拓设备 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 焦作网 WWW.JZRB.COM| 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 合金ICP光谱仪(磁性材料,工业废水)-百科 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 广州云仓代发-昊哥云仓专业电商仓储托管外包代发货服务 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 精密光学实验平台-红外粉末压片机模具-天津博君 | cnc精密加工_数控机械加工_非标平键定制生产厂家_扬州沃佳机械有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 |