yml配置,yml配置redis集群
Docker-Compose.yml配置讲解
yum install docker-compose 安装docker-compose
Docker-Compose.yml标准配置文件应该包含 version、services、networks 三大部分,其中最关键的就是 services 和 networks 两个部分.
报以上错误启动 service docker restart
启动docker-compose.yml命令:docker-compose -f docker-compose.yml up -d
docker-compose config -q 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
查看启动的容器docker-compose ps
springBoot中的application.yml配置文件
有些用过springBoot工程的人总有疑惑,springBoot工程中是有一个application.yml配置文件的啊,其实application.yml的功能和application.properties是一样的,不过因为yml文件是树状结构,写起来有更好的层次感,更易于理解,所以很多人都选择了yml文件。
下面来说说将工程改成application.yml配置文件的详细步骤
第一步:在 application.properties 文件的同级目录下新建一个?application.yml 文件
第二步:添加application.yml文件中的配置如下:
server:
? port: 8088
spring:
? ? datasource:
? ? ? ? name: test
? ? ? ? url: jdbc:mysql://localhost:3306/test
? ? ? ? username: root
? ? ? ? password: xxx
? ? ? ? # 使用druid数据源
? ? ? ? type: com.alibaba.druid.pool.DruidDataSource
? ? ? ? driver-class-name: com.mysql.jdbc.Driver
? ? ? ? filters: stat
? ? ? ? maxActive: 20
? ? ? ? initialSize: 1
? ? ? ? maxWait: 60000
? ? ? ? minIdle: 1
? ? ? ? timeBetweenEvictionRunsMillis: 60000
? ? ? ? minEvictableIdleTimeMillis: 300000
? ? ? ? validationQuery: select 'x'
? ? ? ? testWhileIdle: true
? ? ? ? testOnBorrow: false
? ? ? ? testOnReturn: false
? ? ? ? poolPreparedStatements: true
? ? ? ? maxOpenPreparedStatements: 20
如图所示:
第三步:删除原有的application.properties文件
文件结构如图示:
第四步,重新编译maven工程
找到maven工具栏,双击clean,待执行完成后,双击install,执行完成则编译成功。
第四步,重启springboot项目
没有任何问题:
The End
springboot加载properties和yml配置文件的顺序
假设一个项目在同一位置同时存在application.properties和application.yml文件,
且其中都含有相同的某个key,但value不同,如:
application.properties中:server.port=8001,
application.yml中:server.port=8888。
问题:springboot是否都加载这两个配置文件?如果两个文件有相同的key,取哪一个文件的value?
答: 都加载,且按properties→yml的顺序加载。
在看到spring.factories中,配置加载器顺序是先执行PropertiesPropertySourceLoader再到YamlPropertySourceLoader。
在ConfigFileApplicationListener获取server.port这个key的value时候,可以发现两配置文件全都加载进去了,且注意顺序,application.properties文件在前。
getSource()方法获取到两个Source,先从application.properties文件中查找值,一旦找到立即返回,如果找不到再从application.yml中查找。
单体Spring boot引入外部配置文件yml,properties
我们在做微服务项目时候会引入spring cloud框架,对于配置文件我们就会通过spring cloud config来配置,实现线上环境动态修改配置文件属性而不需要重新打jar 包。 但是对于单体的spring boot工程,我们又希望可以在生产环境中方案修改配置文件属性。
通过引入外部配置文件,应用启动时候设置配置文件的自动加载
1: 在单体工程的root目录下添加一个config目录,然后新建我们的properties, 如:jdbc-db.properties, redis.properties
2: 然后在我们的application启动类上添加@propertySources注解引入我们的外部文件
注意:因为PropertySources 默认只解析.properties文件,如果要解析yml文件,需要指定factory只需要实现org.springframework.core下的 PropertySourceFactory 接口就OK了。
简单的properties配置文件只需要按如下方式配置即可
只需要1,2步骤就可以完成外部文件的加载,如果涉及到线上修改配置就只需要手动修改配置文件,重新启动应用即可生效。
多个Yaml配置文件
当一个项目中有多个yml配置文件的时候,可以以application-**.yml命名;在application.yml中配置项目使用激活这些配置文件即可。多个文件名只需要写application-之后的名称,在多个文件之间使用,隔开。在两个配置文件中如果存在同名的配置项的话会以properties文件的为主。
激活配置文件application-a.yml与application-b.yml
SpringBoot使用配置类映射yml配置文件信息
使用configurationProperties注解并指明在配置文件中的前缀,然后用component注解注册进ioc容器。
我这里定义的两个静态内部类,同时创建了各自的实例,比如这个Email静态内部类中有三个属性,那么配置文件就可以是mq.myrabbit.email.queue来对静态内部类中的属性进行一个映射
在yml中写配置
项目编译后,在yml中写配置会自动显示出来自己定义的配置映射类所具有的属性,如下图所示:
然后在yml配置文件中,写各个配置,配置类就会读取到了