springboot中.yml文件参数的读取方式

目录
  • yml文件参数的读取
    • 附上一个较为常见的application.yml文件示例
    • 正常在controller中
    • 通过config文件的读取
  • 关于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. 冒号之后如果有值,那么冒号和值之间至少有一个空格,不能紧贴着

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot从yml配置文件中读常用参数值实例方法

    SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将yml中的数据直接读取出来. 1.yml文件(这里设置参数的时候往往设置两层前缀,避免在调用的时候该属性中的部分参数名与计算机中的某些名字冲突) test: person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1:

  • 详解springboot读取yml配置的几种方式

    yml 文件规则 yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的. 不支持tab缩进 可以使用 "-小写字母" 或 "_小写字母"来 代替 "大写字母",如 userName 与 user-name ,user_name 含义是一样的 key: value 格式书写 key 后面跟着冒号,再后面跟着一个空格,然后是值 几种数据格式的表示方式 1.普通的值(数字,字符串,布尔) 2.对象.Map (属性和值) (

  • Springboot 读取 yml 配置文件里的参数值

    目录 方式一 方式二 总结 方式一 1.yml配置 yml配置(示例): api: mes: MES_SOCKET: http://192.168.99.140:8081 2.读取 代码如下(示例): package com.jack.modules.wms.api.common.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; impor

  • springboot中.yml文件参数的读取方式

    目录 yml文件参数的读取 附上一个较为常见的application.yml文件示例 正常在controller中 通过config文件的读取 关于yml文件书写的注意事项 yml文件参数的读取 附上一个较为常见的application.yml文件示例 server: port: 9999 use-forward-headers: true tomcat: remote-ip-header: X-Real-IP protocol-header: X-Forwarded-Proto spring:

  • springboot中.yml文件的值无法读取的问题及解决

    目录 yml文件的值无法读取的问题 1.添加maven依赖 2.注解方式在需要使用变量名的类上加上注解 ,@Configuration 3..yml文件配置如下 yml文件不被识别 解决方法 yml文件的值无法读取的问题 1.添加maven依赖 <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-configuration-proce

  • springboot中Getmapping获取参数的实现方式

    目录 Getmapping获取参数的方式 其他传参方式 在此之外 @GetMapping参数接收理解 当参数为基本类型时 当参数为数组时 当参数为简单对象时 当参数的对象中嵌套着对象 Getmapping获取参数的方式 Springboot中Getmapping使用PathVariable.HttpServletRequest.RequestParam获取参数 今天在学习Springboot中遇得到了一个问题,放一段代码  @GetMapping(value="/student/login/{n

  • 关于springBoot yml文件的list读取问题总结(亲测)

    目录 springBoot yml文件的list读取问题 配置如下 1.定义配置类 2.定义启动的配置类 3.使用方式 读取yml文件里的list配置 YAML 支持以下几种数据类型 这里只介绍list类型的读取 拿到配置文件里的内容 springBoot yml文件的list读取问题 折腾了很久,记录下. 配置如下 # 自定义数据上报信息 xx: # 机组信息 machine1s: - name: XXXX frequency: null frequency-unit: null pressu

  • Spring中属性文件properties的读取与使用详解

    Spring中属性文件properties的读取与使用详解 实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理.例中将需配置的属性信息放在属性文件/WEB-INF/configInfo.properties中. 其中部分配置信息(邮件发送相关): #邮件发送的相关配置 email.host = smtp.163.com email.port = xxx email.username = xxx email.password = xxx

  • springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username * @param password * @return */ @RequestMapping("/addUser1") public String addUser1(String username,String password) { System.out.pri

  • springboot的yml配置文件通过db2的方式整合mysql的教程

    springboot整合MySQL很简单,多数据源就master,slave就行了,但是在整合DB2就需要另起一行,以下是同一个yml文件 先配置MySQL,代码如下 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 主库数据源 master: url: jdbc:mysql://localhost:3308/<数据库名>?useUnicode=true&characterEncoding

  • 解决idea中yml文件图标问题及自动提示失效的情况

    解决方法: 补充:idea中yml文件图标小绿叶变成小网格问题及自动提示失效解决方法 idea中yml文件图标小绿叶变成小网格问题及自动提示失效解决方法 .yml文件突然变成下图小网格,且没有自动提示了,让人非常的崩溃哈!! 最后终于解决了,步骤如下: 1.ctrl + shift + alt + s ,打开设置 2.找到下图设置 3.添加如下图所示绿色的spring 4.选择.yml文件所在的module,点击ok 5.点击Apply,OK即可 6.返回,完美解决 以上为个人经验,希望能给大家

  • pycharm中venv文件夹自定义处理方式图解

    pycharm每次新建项目都需要重新安装库,解决方法如下: 新建项目时自定义选择库(自己安装python位置),不要创建新的(如下图) 第一完成后,让它记忆我们这个库,新建项目都默认这个库依次打开:Flie-Settings-Project-project interpreter 在点击设置添加add按钮 选择现有环境(python安装位置) 添加第三方库 默认地址是 https://pypi.org/simple/ 国外地址下载会非常慢,这里可以选择 Manage Repositories添加

  • Springboot中静态文件的两种引入方式总结

    目录 thymeleaf 模式 依赖中引入 可选配置 yml 做如下配置 构架这样构架 非thymeleaf 模式 首先去掉依赖 删除controller的指向view层 yml文件中这样配置 构架如下 thymeleaf 模式 依赖中引入 <!-- 渲染静态页面 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter

随机推荐