spring boot 使用自定义配置
来源:互联网 发布:p2p网管软件 编辑:程序博客网 时间:2024/04/28 10:52
在spring boot的自动配置中,即使不使用写任何配置文件,通过默认配置大多都可以运行起来。但是有些时候这些配置并不能满足我们的需求,需要我们自己的定制。例如:数据源地址,中间件地址等,默认的都是本机localhost,当然我们实际使用过程中一般都不会在同一台机器
事实上,Spring Boot自动配置的Bean提供了300多个用于微调的属性。当你调整设置时,只要在环境变量、Java系统属性、JNDI(Java Naming and Directory Interface) 、命令行参数或者属
性文件里进行指定就好了。
举个简单的例子:
在命令行运行程序时,Spring boot 会有一个启动的Banner。如果你想禁用掉这个Banner的话,可以将spring.main.show-banner 属性设置为 false。下面有几种实现方式:
在运行应用程序的命令行参数里指定:
$ java -jar readinglist-0.0.1-SNAPSHOT.jar --spring.main.show-banner=false
创建一个名为application.properties的文件,包含如下内容:
spring.main.show-banner=false
- 也可以创建名为application.yml的,
spring:
main:
show-banner: false - 将属性设置为环境变量。举例来说,如果你用的是bash或者zsh,可以用 export 命令:
$ export spring_main_show_banner=false
ps:请注意,这里用的是下划线而不是点和横杠,这是对环境变量名称的要求。
实际上,Spring Boot应用程序有多种设置途径。Spring Boot能从多种属性源获得属性,包括
如下几处。
(1) 命令行参数
(2) java:comp/env 里的JNDI属性
(3) JVM系统属性
(4) 操作系统环境变量
(5) 随机生成的带 random.* 前缀的属性 (在设置其他属性时, 可以引用它们, 比如 ${random.
long} )
(6) 应用程序以外的application.properties或者appliaction.yml文件
(7) 打包在应用程序内的application.properties或者appliaction.yml文件
(8) 通过 @PropertySource 标注的属性源
(9) 默认属性这个列表按照优先级排序,也就是说,任何在高优先级属性源里设置的属性都会覆盖低优先级的相同属性。例如,命令行参数会覆盖其他属性源里的属性。
application.properties和application.yml文件能放在以下四个位置。
(1) 外置,在相对于应用程序运行目录的/config子目录里。
(2) 外置,在应用程序运行的目录里。
(3) 内置,在config包内。
(4) 内置,在Classpath根目录。
同样,这个列表按照优先级排序。也就是说,/config子目录里的application.properties会覆盖
应用程序Classpath里的application.properties中的相同属性。
此外, 如果你在同一优先级位置同时有application.properties和application.yml, 那么application.
yml里的属性会覆盖application.properties里的属性。
一般开发中,开发者的配置文件配置的参数和集成环境是不一样。一般做法是:
- jekins打包的时候,根据不同的环境拉取外部配置文件然后把配置文件一起打包到jar中
- 项目启动的时候,直接使用外部的配置文件
- Spring boot 中可以用Profile进行配置,准备多个环境的配置文件
- 类似于Spring Cloud Config的远程配置中心,进行动态的获取
参考:《Spring boot 实战》
- spring boot 使用自定义配置
- Spring Boot-自定义配置
- Spring Boot自定义配置
- spring boot自定义属性配置
- Spring boot logback自定义配置
- 3.spring boot自定义配置
- Spring boot配置自定义Servlet
- Spring Boot 自定义 Web 配置
- spring-boot @Async 的使用、自定义Executor的配置方法
- spring-boot @Async 的使用、自定义Executor的配置方法
- Spring Boot 实践折腾记(五):自定义配置,扩展Spring MVC配置并使用fastjson
- Spring boot配置使用Freemarker
- Spring Boot配置使用Mybatis
- Spring Boot学习笔记-自定义配置
- 《Spring Boot in Action》【3. 自定义配置】
- spring boot加载自定义配置源
- Spring Boot使用自定义的properties
- Spring Boot使用自定义的properties
- jsp内置对象(隐含对象)
- 被误解的 MVC 和被神化的 MVVM
- 转发和重定向的区别(简单解释)
- RGB对照表
- 封装弹窗组件
- spring boot 使用自定义配置
- JBoss/Wildfly 配置SQLserver服务器
- 【2-5】Python基础——dict和set
- uva 12504 Updating a Dictionary(更新字典)
- 进程间通信之WM_COPYDATA的基本实现
- Java泛型:通配符
- 动态规划:最长上升子序列之基础(经典算法 n^2)
- ext4 设备文件处理
- caffe学习笔记19-batchsize参数