配置文件:oss-config.yml  application.yml

使用@Value 始终无法读取。

解决方法

1.修改oss-config.yml 文件名为 application-ossConfig.yml

2.application.yml文件添加

spring boot 如何读取外部的配置文件 springboot读取jar外部配置文件_配置文件

引入自定义的配置文件,刚开始自定义的配置文件名为application-oss-config.yml死活引不进去,现在想想可能是‘-’被spring认为是一个分隔符!!!!

3.自定义application-ossConfig.yml文件内容,类似这样,

spring boot 如何读取外部的配置文件 springboot读取jar外部配置文件_配置文件_02

 自定义配置文件中,我引用了变量,例如这样:

spring boot 如何读取外部的配置文件 springboot读取jar外部配置文件_配置文件_03

 前缀一定要加上,否则获取不到!!!!

 

4.配置读取类这样写

spring boot 如何读取外部的配置文件 springboot读取jar外部配置文件_自定义_04

@Value 一定要写完整,否则获取不到!!!!

有人就会问了,为什么不用

ConfigurationProperties(prefix = "alibaba.cloud.oss.default-imag”),指定前缀,上述类中直接用@Value(“${pub-endpoint}”)??!妈的,劳资试了,读取不到,无奈之举!!!

估计还有人要说可以这样配:

spring boot 如何读取外部的配置文件 springboot读取jar外部配置文件_配置文件_05

 爸爸也试了,不行,虽然开发环境正常,但是部署时肯定要配置文件外置啊,

这样配外置配置文件丫的根本不生效!!!!

 

最后一句:spring boot项目启动时,外置配置文件只认application.yml(properties),、、

什么bootstap.yml,乱七八糟自定异的配置文件,springboot 根本不鸟一下,除非你在application.properties(yml)显示引入进来!

还有,被引入application.yml 的自定义配置文件是允许这样的:

alibaba:
  cloud:
    oss:
      default:
        #        #必要初始化属性
        #        #公网访问地域节点名
        #        pub-endpoint: oss-cn-hangzhou.aliyuncs.com
        #        #ECS内网访问节点名
        #        ecs-endpoint: oss-cn-hangzhou-internal.aliyuncs.com
        #==============================
        #此账号拥有该bucket及bucket文件下的所有控制权,包括但不限于文件上传、下载、删除等
        #该账号不具有创建bucket创建权限
        access-key-id: LTAIVCZ3BRMEvzjE
        access-key-secret: u1YX1DfpEis7CjYfPpTxvWxDlDpBZf
#        #不能添加httpL://字段,默认绑定端口为项目的启动端口,需要同步修改
#        callback-domain: 36psci.natappfree.cc
        #格式:详情查看controller中的文件回调接口
        callback-url: ${alibaba.cloud.oss.default.callback-domain}${server.servlet.context-path}/file/upload-callback
        #建立连接的超时时间(单位:毫秒)。默认为50000毫秒
        connection-timeout: 10000
        #可重试的请求失败后最大的重试次数。默认为3次
        max-error-retry: 5
        #=======以下为图片配置======
        image:
          #oss控制台,bucket级别自定义图片处理规则,如是否带水印、是否模糊等
          custom-style-name: style/quanwei-logo

---
#所有非ali环境一律使用此配置
spring:
  profiles: localhost

alibaba:
  cloud:
    oss:
      default:
        #必要初始化属性
        #ECS内网访问地域节点名
        endpoint: oss-cn-hangzhou.aliyuncs.com
        #不能添加httpL://字段,默认绑定端口为项目的启动端口,需要同步修改
        callback-domain: 36psci.natappfree.cc

---
#aliyun正式环境
spring:
  profiles: GA

alibaba:
  cloud:
    oss:
      default:
        #必要初始化属性
        #ECS内网访问地域节点名
        endpoint: oss-cn-hangzhou-internal.aliyuncs.com
        #不能添加httpL://字段,默认绑定端口为项目的启动端口,需要同步修改
        callback-domain: alibababa

 

==================================================================================