亲宝软件园·资讯

展开

yml文件参数的读取

路过的人儿 人气:0

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. 冒号之后如果有值,那么冒号和值之间至少有一个空格,不能紧贴着

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

加载全部内容

相关教程
猜你喜欢
用户评论