zoukankan      html  css  js  c++  java
  • 解决springboot项目中@Value注解参数值为null的问题

    1、错误场景:

    springboot项目中在.properties文件(.yml)文件中配置了属性值,在Bean中使用@Value注解引入该属性,Bean的构造器中使用该属性进行初始化,此时有可能会出现属性值为null,造成初始化程序的错误

    2、错误原因:

    因为Bean的构造器调用是在@Value属性赋值之前进行的,所以造成了属性还没有赋值,就被调用的情况。

    3、解决方案:

    将构造器中需要使用的@Value属性作为构造器的参数,确保构造器中使用该属性之前,属性已经得到初始化

    理论先行,代码跟上(^_^)

    (1).yml配置文件中配置系统参数值 file.upload-dir

    file:
      upload-dir: /Users/lc/temp/

    (2)FileStorageService 的构造器需要使用使用 file.upload-dir 属性

    @Service
    public class FileStorageService {
      /* @Value("${file.upload-dir}")
        private String uploadDir; */
    public FileStorageService(@Value("${file.upload-dir}") String uploadDir) throws ServiceException { this.fileStorageLocation = Paths.get(uploadDir).toAbsolutePath().normalize(); try { Files.createDirectories(this.fileStorageLocation); } catch (Exception e) { throw new Exception(e); } } }

    (3)now,问题解决了。

  • 相关阅读:
    10055
    国外程序员推荐:每个程序员都应该读的非编程书
    Volume 0. Getting Started
    如何成为一名 Google 软件工程师?【Google招聘信息】作者: 丁鑫哲
    毕设-家校通
    如何快速创建数据库连接字符串
    LeetCode day13
    LeetCode day12
    LeetCode day11
    LeetCode day10 Called it
  • 原文地址:https://www.cnblogs.com/zhoujl-5071/p/10371321.html
Copyright © 2011-2022 走看看