当前位置:主页 > java教程 > Spring Boot使用Value注解给静态变量赋值的方法

实例分享Spring Boot使用Value注解给静态变量赋值的方法

发布:2020-03-02 11:30:18 180


为找教程的网友们整理了Java相关的编程文章,网友郗奇邃根据主题投稿了本篇教程内容,涉及到Spring、Boot、静态变量赋值、Value、Spring Boot使用Value注解给静态变量赋值的方法相关内容,已被542网友关注,相关难点技巧可以阅读下方的电子资料。

Spring Boot使用Value注解给静态变量赋值的方法

昨天在使用@Value注解给静态变量赋值的时候,发现静态变量的值始终是null。后来搜索一下得知其中原因,Spring Boot 不允许/不支持把值注入到静态变量中。但是我们可以变通一下解决这个问题。因为Spring Boot 支持set方法注入,我们可以利用非静态set方法注入静态变量。废话不多说,贴上我昨天写的代码:

@Component
public class CoverImageUtil {

  private static String endpoint;

  private static String bucketName;

  @Value("${oss.endpoint}")
  private void setEndpoint(String name){
    endpoint = name;
  }
  @Value("${oss.bucketName}")
  private void setBucketName(String name){
    bucketName = name;
  }
  public static String getImage(String path){

    if (StringUtils.isEmpty(path)){
      return null;
    }
    // XXX的图片地址 https://oss.XXX.com/uploads/8F/70/8F70879210F08AAA6F4A04A3D42F3704.jpg
    if (path.contains("oss.XXX.com")){
      return path;
    }
    String[] str = path.split(",");

    // mt的图片地址
    // key = customer/coverImg/1002,FAFA5EFEAF3CBE3B23B2748D13E629A1,418530,image/jpeg
    // url = https://m-t-tesing.oss-cn-hangzhou.aliyuncs.com/customer/coverImg/1002
    StringBuilder url = new StringBuilder("https://");
    url.append(bucketName)
        .append(".")
        .append(endpoint)
        .append("/")
        .append(str[0]);

    return url.toString();
  }
}

注意

  • 代码中需要@Component注解
  • set方法要是非静态的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


参考资料

相关文章

  • Spring事务失效的场景梳理总结

    发布:2023-03-26

    实际项目开发中,如果涉及到多张表操作时,为了保证业务数据的一致性,大家一般都会采用事务机制,好多小伙伴可能只是简单了解一下,遇到事务失效的情况,便会无从下手,下面这篇文章主要给大家介绍了关于Spring事务失效场景的相关资料,需要的朋友可以参考下


  • 浅谈SpringBoot在使用测试的时候是否需要@RunWith

    发布:2023-03-11

    本文主要介绍了浅谈SpringBoot在使用测试的时候是否需要@RunWith,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • SpringBoot中实现跨域的5种方式小结

    SpringBoot中实现跨域的5种方式小结

    发布:2023-01-24

    给网友们整理关于SpringBoot的教程,这篇文章主要介绍了SpringBoot 中实现跨域的5种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Spring中IOC和AOP的深入讲解

    Spring中IOC和AOP的深入讲解

    发布:2022-06-18

    给大家整理一篇关于Spring的教程,这篇文章主要给大家介绍了关于Spring中IOC和AOP的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • SpringBoot自定义MessageConvert详细讲解

    发布:2023-03-06

    正在学习SpringBoot,在自定义MessageConverter时发现:为同一个返回值类型配置多个MessageConverter时,可能会发生响应数据格式错误,或406异常(客户端无法接收相应数据)。在此记录一下解决问题以及追踪源码的过程


  • SpringBoot部署xxl-job方法详细讲解

    发布:2023-03-03

    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,这篇文章主要介绍了springboot整合xxl-job流程,需要的朋友可以参考下


  • SpringBoot定制化Starter实现方法

    发布:2023-03-07

    小伙伴们曾经可能都经历过整天写着CURD的业务,都没写过一些组件相关的东西,这篇文章记录一下SpringBoot如何自定义一个Starter。原理和理论就不用多说了,可以在网上找到很多关于该方面的资料,这里主要分享如何自定义


  • Spring的RestTemplata使用的具体方法

    发布:2022-09-12

    给大家整理了关于Spring的教程,本篇文章主要介绍了Spring的RestTemplata使用的具体方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


网友讨论