springboot中.yml文件参数的读取方式
作者:路过的人儿 发布时间:2021-06-20 00:57:51
标签:springboot,yml,参数
yml文件参数的读取
附上一个较为常见的application.yml文件示例
server:
port: 9999
use-forward-headers: true
tomcat:
remote-ip-header: X-Real-IP
protocol-header: X-Forwarded-Proto
spring:
# datasource:
# type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型
# driver-class-name: org.gjt.mm.mysql.Driver # 配置MySQL的驱动程序类
# url: jdbc:mysql://127.0.0.1:3306/drink?useUnicode=true&characterEncoding=UTF-8 # 数据库连接地址
# username: root # 数据库用户名
# password: root # 数据库连接密码
# dbcp2: # 进行数据库连接池的配置
# min-idle: 5 # 数据库连接池的最小维持连接数
# initial-size: 5 # 初始化提供的连接数
# max-total: 5 # 最大的连接数
# max-wait-millis: 200 # 等待连接获取的最大超时时间
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/drink-bar?useUnicode=true&characterEncoding=utf8
username: root
password: 123456
# 初始化时建立的连接数
initial-size: 5
# 最大连接数
max-active: 20
# 最小连接数
min-idle: 5
# 获取连接最大等待时间,单位:毫秒
max-wait: 2000
# 是否缓存preparedStatement
pool-prepared-statements: false
# 最大preparedStatement缓存数,当pool-prepared-statements=true时需要大于0
max-pool-prepared-statement-per-connection-size: -1
# 检测连接是否失效的sql
validation-query: SELECT 'x'
# 检测连接是否失效的超时时间,单位:秒
validation-query-timeout: 2
filters: stat,wall,log4j2,config
time-between-log-stats-millis: 604800000
# connection-properties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI0Q56HOXI2Z33kNpgOxvMbaE7BRUw0pZMLPZA0Pe+J/6R7Cq97BUCDygkzL7evUfQmPprNh6KKaSKXV0dBVghcCAwEAAQ==
# Spring aop监控的包路径
aop-patterns: cn.greedystar.springbootdemo.modules.service.*
filter:
config:
enabled: true
# 监控统计
stat:
enabled: true
db-type: mysql
# 打印慢sql
log-slow-sql: true
# 超过200毫秒即为慢sql
slow-sql-millis: 200
# sql防火墙
wall:
enabled: true
db-type: mysql
# 对认定的攻击sql进行日志输出
log-violation: true
# 对认定的攻击sql抛出异常
throw-exception: true
config:
# 是否允许下述操作
alter-table-allow: false
truncate-allow: false
drop-table-allow: false
update-where-none-check: true
# metadata会暴露数据的表结构
metadata-allow: true
# 日志
log4j2:
enabled: true
# log4j2仅记录druid的sql执行日志
statement-log-enabled: false
connection-log-enabled: false
result-set-log-enabled: false
statement-executable-sql-log-enable: true
# 数据库连接池监控统计插件
web-stat-filter:
enabled: true
url-pattern: /*
# 过滤掉如下请求
exclusions: '*.gif,*.png,*.jpg,*.html,*.js,*.css,*.ico,/druid/*'
# 数据库连接池监控页面插件
stat-view-servlet:
enabled: true
url-pattern: '/druid/*'
reset-enable: true
login-username: admin
login-password: admin
allow:
deny:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
redis:
database: 2
host: www.mist1.com
port: 9000
password: mistone23s
jedis:
pool:
max-idle: 1000
max-wait: -1
min-idle: 2
max-active: 10
mybatis:
mapper-locations:
# - classpath:mapper/*.xml
- classpath*:mapper/*.xml
# 日志配置文件
logging:
config: classpath:log4j2/log4j2.xml
# 分页配置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
# JWT
jwt:
header: Authorization
secret: mySecret
#token有效期一天
expiration: 86400
tokenHead: "Bearer "
filePath: E://upload
fileServerUrl: http://file.mist1.com
env: dev1
dada:
shopNo: 21443-254867
sourceId: 21443
isPrepay: 1
debug: true
wx:
template-msg:
appid: wx092f89864f7afb50
take_out_success: HS5BpCEGQkf-6fKjn0YeVKpEfqe_5WzmaGgNX1-sdT4
self_take_success: HS5BpCEGQkf-6fKjn0YeVIEfy8nc_ZIm0QkqhTcBg2g
remind_take: E7Oe-OBFh8ABAWudkti1MTUB7mXOOPTZoGTr5J0Um4Y
order_delivery: rYSNmi-tn-HS_68S2vmFrTlfbgD-MhWse3RS21GSFWs
evaluate_wait: kZg0wJ8cXDSQVlWBxVkNbdHSvF8_tEZRoKf0yzQCUTQ
ticketUrl: http://localhost:9999/api/v1/print/printTicketByJson
tipUrl: http://localhost:9999/api/v1/print/printTipByJson
miniapp:
configs:
- appid: #微信小程序appid
secret: #微信小程序secret
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
- appid: #微信小程序appid
secret: #微信小程序secret
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
pay:
appId: #微信小程序APPID
mchId: #商户号
mchKey: #商户号秘钥
subAppId: #服务商模式下的子商户公众账号ID
subMchId: #服务商模式下的子商户号
keyPath: classpath:cert/apiclient_cert.p12
notifyUrl: http://wx.mist1.com/wx/api/pay/notify/order
refundUrl: http://wx.mist1.com/wx/api/pay/notify/refund
tradeType: JSAPI
正常在controller中
可以通过@Value注解机型获取
@Value("${jwt.header}")
private String token_header;
但是在service,serviceImpl等层中,没办法通过这种方式获取,可以通过另外一种方式进行获取
通过config文件的读取
package com.drink.admin.core.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "wx.template-msg")
public class WxTemplateProperties {
private String appid;
private String take_out_success;
private String self_take_success;
private String remind_take;
private String order_delivery;
private String evaluate_wait;
private String ticketUrl;
private String tipUrl;
}
使用@ConfigurationProperties注解读取
在service中通过@Autowired加载即可
@Autowired
private WxTemplateProperties wxTemplateProperties;
关于yml文件书写的注意事项
现在大家发现,在springboot里还是要用到配置文件的。 除了使用.properties外,springboot还支持 yml格式。
个人觉得yml格式的可读性和..properties比起来差不多,有时候还没有不如properties 看起来那么规整。
但是考虑到很多springboot项目会使用yml格式,还是简单讲讲,主要目的还是为了读懂其他人的项目。
如图所示,左边是application.properties的写法,右边是application.yml的写法,他们达到的效果是相同的
在application.yml 文件书写注意:
1. 不同“等级” 用冒号隔开
2. 次等级的前面是空格,不能使用制表符(tab)
3. 冒号之后如果有值,那么冒号和值之间至少有一个空格,不能紧贴着
来源:https://www.jianshu.com/p/dc38ef585220
0
投稿
猜你喜欢
- 什么是冒泡排序冒泡排序指重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从小到大)错误就把他们交换过来。走访元素的工作是重复
- @ConditionalOnMissingBean,它是修饰bean的一个注解,主要实现的是,当你的bean被注册之后,如果而注册相同类型的
- 在 Flutter 中使用图片是最基础能力之一。作为春节开工后的第一篇文章,17 做了精心准备,满满的都是干货!本文介绍如何在 Flutte
- 1概述众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统
- 什么是注解在早期的工作的时候 ,自定义注解写的比较多,可大多都只是因为 这样看起来 不会存在一堆代码耦合在一起的情况,所以使用了自定义注解,
- 一、目的本篇文章的目的是记录本人使用flutter加载与调用第三方aar包。二、背景本人go后端,业余时间喜欢玩玩flutter。一直有一个
- java:使用匿名类直接new接口java中的匿名类有一个倍儿神奇的用法,见下面代码示例:package contract;public i
- 前言 短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油,我命由我不由天
- Java中Stop-The-World机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起(除了垃圾收集帮助器之外
- 一、简介Android的消息机制主要是指Handler的运行机制,那么什么是Handler的运行机制那?通俗的来讲就是,使用Handler将
- 用法在java中经常会遇到需要对数据进行类型转换的场景,String类型的数据转为Int类型属于比较常见的场景,主要有两种转换方法:1. 使
- 简介由于最近的项目需求,需要在把配置类导入到容器中,通过查询,使用@Import注解就能实现这个功能,@Import注解能够帮我们吧普通配置
- SpringBoot v2.2以上重复读取Request Body内容一、需求项目有两个场景会用到从Request的Body中读取内容。打印
- FileOutPutStream:子类,写出数据的通道步骤:1.获取目标文件2.创建通道(如果原来没有目标文件,则会自动创建一个)3.写入数
- 前言:在纯 Java 代码里 我们一般都会用class.getResource(String name) 或者 class.getClass
- 本文需求实现了java通过方向键控制小球移动的具体过程,供大家参考,具体内容如下需求分析:第一 要画出一个小球第二 要能通过控制方向键控制它
- 使用poi生成excel通常包含一下几个步骤创建一个工作簿创建一个sheet创建一个Row对象创建一个cell对象(1个row+1个cell
- 概述:App几乎都离不开与服务器的交互,本文主要讲解了flutter网络请求三种方式 flutter自带的HttpClient、 第三方库h
- 引出泛型我们通过如下的示例,引出为什么泛型的概念。public class Test {public static void main(St
- 在你的jar文件当前目录中建立一个bat文件:内容是:注意文件名要对应@echo offSTART "commandServer&