详解SpringBoot配置文件启动时动态配置参数方法

序言

当我们要同时启用多个项目而又要使用不同端口或者变换配置属性时,我们可以在配置文件中设置${变量名}的变量来获取启动时传入的参数,从而实现了动态配置参数,使启用项目更加灵活

例子

server:
 port: ${PORT:50101} #服务端口
spring:
 application:
  name: xc‐govern‐center #指定服务名
eureka:
 client:
  registerWithEureka: true #服务注册,是否将自己注册到Eureka服务中
  fetchRegistry: true #服务发现,是否从Eureka中获取注册信息
  serviceUrl: #Eureka客户端与Eureka服务端的交互地址,高可用状态配置对方的地址,单机状态配置自己(如果不配置则默认本机8761端口)
   defaultZone: ${EUREKA_SERVER:http://eureka02:50102/eureka/} #向该地址上报心跳信息等
 server:
  enable‐self‐preservation: false #是否开启自我保护模式
  eviction‐interval‐timer‐in‐ms: 60000 #服务注册表清理间隔(单位毫秒,默认是60*1000)
 instance:
hostname: ${EUREKA_DOMAIN:eureka01}

${PORT:50101}:PORT是变量,当启动时该变量为空则默认50101端口
语法意思是:从该yml配置文件中或者启动配置传入的参数中获取对应属性值

可以类比一下写@Value注解时的格式
@Value(" ${huang.name}")

我们springboot的配置文件格式已经完成了,那么如何启动呢?

idea 点击 run -> edit configuration

设置配置文件参数步骤
1、首先按“+"号添加一个Application(SpringBoot项目添加SpringBoot也可以)
2、设置文件名称(随便起一个就行)
3、主要我画的三个红圈地方
1)、第一个是启动类的类路径
2)、设置要传入配置文件中的变量值

比如我要传入PORT这个变量的值:

server:
 port: ${PORT:50101} #服务端口

我们就这样写:
-DPORT=50101(-D可以理解为多个参数之间的分隔符)
多个参数就这样写:
-DPORT=50101 -DEUREKA_SERVER=http://eureka02:50102/eureka/ -DEUREKA_DOMAIN=eureka01

3)、项目名

完成,启动

在这里选择刚刚搞好的设置的名字,然后点击运行就会按照该设置中的参数来运行该项目了

到此这篇关于详解SpringBoot配置文件启动时动态配置参数方法的文章就介绍到这了,更多相关SpringBoot 动态配置参数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot实现动态控制定时任务支持多参数功能

    由于工作上的原因,需要进行定时任务的动态增删改查,网上大部分资料都是整合quertz框架实现的.本人查阅了一些资料,发现springBoot本身就支持实现定时任务的动态控制.并进行改进,现支持任意多参数定时任务配置 实现结果如下图所示: 后台测试显示如下: github 简单demo地址如下: springboot-dynamic-task 1.定时任务的配置类:SchedulingConfig import org.springframework.context.annotation.Bean

  • 详解SpringBoot配置文件启动时动态配置参数方法

    序言 当我们要同时启用多个项目而又要使用不同端口或者变换配置属性时,我们可以在配置文件中设置${变量名}的变量来获取启动时传入的参数,从而实现了动态配置参数,使启用项目更加灵活 例子 server: port: ${PORT:50101} #服务端口 spring: application: name: xc‐govern‐center #指定服务名 eureka: client: registerWithEureka: true #服务注册,是否将自己注册到Eureka服务中 fetchReg

  • 详解Java程序启动时-D指定参数是什么

    目录 参数设置 参数获取 测试类 总结 参数设置 java程序启动参数 -D是用来做什么的呢? 官方解释如下: Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes: java -Dfoo="some string" SomeClass 也就是说-D是用来在启动一个java程序时设置系统属性值的. 注意: 如

  • 详解SpringBoot程序启动时执行初始化代码

    因项目集成了Redis缓存部分数据,需要在程序启动时将数据加载到Redis中,即初始化数据到Redis. 在SpringBoot项目下,即在容器初始化完毕后执行我们自己的初始化代码. 第一步:创建实现ApplicationListener接口的类 package com.stone; import com.stone.service.IPermissionService; import org.springframework.context.ApplicationListener; import

  • 详解Springboot配置文件的使用

    如果使用IDEA创建Springboot项目,默认会在resource目录下创建application.properties文件,在springboot项目中,也可以使用yml类型的配置文件代替properties文件 一.单个的获取配置文件中的内容 在字段上使用@Value("${配置文件中的key}")的方式获取单个的内容 1.在resource目录下创建application.yml文件,并添加一些配置,在yml文件中,key:后面需要添加一个空格,然后是value值,假设配置如

  • 详解SpringBoot修改启动端口server.port的四种方式

    方式一: 配置文件 application.properties server.port=7788 方式二: java启动命令 # 以应用参数的方式 java -jar <path/to/my/jar> --server.port=7788 # 或以 JDK 参数的方式 java -Dserver.port=7788 -jar <path/to/my/jar> 方式三: 环境变量 SERVER_PORT Linux: SERVER_PORT=7788 java -jar <p

  • springboot多环境进行动态配置的方法

    目录 一.如何配置多环境 二.生效多环境的多种方式 2.1.spring.config.name 2.2.spring.profiles.active 2.3.pom中<profiles>标签 三.总结 在平时的开发中,经常会有多个环境,如何管理多个环境中的配置呐?一个是我们本地的开发环境,可以称为dev,一个是测试环境,我们称为test,最后还要有生产环境,称为prod.每个环境的配置都是不一样的,如何做到快捷方便的使用各自环境的配置绝对是开发中需要着重考虑的. 一.如何配置多环境 在spr

  • 详解Springboot应用启动以及关闭时完成某些操作

    一:启动时完成数据加载等需求 实现ApplicationListener接口,官方文档截图: ApplicationListener接口的泛型类可以使用ApplicationStartedEvent和ApplicationReadyEvent 应用监听器事件执行先后顺序如下: ApplicationStartingEvent ApplicationEnvironmentPreparedEvent ApplicationPreparedEvent ApplicationStartedEvent A

  • 详解SpringBoot应用服务启动与安全终止

    SpringBoot应用服务启动 参照官方示例工程可以快速搭建简单SpringBoot应用,官方连接如下:http://projects.spring.io/spring-boot/#quick-start 闲话少叙,上代码: package hello; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype

  • 详解Springboot 优雅停止服务的几种方法

    在使用Springboot的时候,都要涉及到服务的停止和启动,当我们停止服务的时候,很多时候大家都是kill -9 直接把程序进程杀掉,这样程序不会执行优雅的关闭.而且一些没有执行完的程序就会直接退出. 我们很多时候都需要安全的将服务停止,也就是把没有处理完的工作继续处理完成.比如停止一些依赖的服务,输出一些日志,发一些信号给其他的应用系统,这个在保证系统的高可用是非常有必要的.那么咱么就来看一下几种停止springboot的方法. 第一种就是Springboot提供的actuator的功能,它

  • 详解vue-cli + webpack 多页面实例配置优化方法

    本文介绍了vue-cli + webpack 多页面实例配置优化方法,分享给大家 vue+webpack是否有多页面 目前使用vue来做项目,估计大部分都是单页面(SPA)应用,一个轻型的 MVVM 框架,谁用了MVVM框架,就再也回不去JQ时代了,哈哈. 在手机端的项目,使用vue + vue-router是high到爆,不仅仅是我们开发的而言,最主要的用户体检也是开足马力,体检感杠杠的. 那问题来了,使用vue+webpack的单页面是爽到爆,那如果是多页面也能不能high到爆呢?那当然呀,

随机推荐