spring boot 中PropertiesUtil 工具类的创建和应用

在spring boot 项目中 使用 自定义 PropertyPlaceholderConfigurer会造成 @Vaule 无法正常注入,spring boot 已经有一个默认的实现,所以会造成冲突,

在spriing mvc 中可以 使用PropertyPlaceholderConfigurer 来实现静态方法获取配置参数,那在 spring boot 中如何实现呢?

使用  Environment env;  类,这个是spring boot 自带的环境信息获取工具,使用方法如下:



package com.company.project.util;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.MissingResourceException;

/**
 * Parsing The Configuration File
 * 
 * @author ShenHuaJie
 * @version 2016年7月30日 下午11:41:53
 */
@Component
public final class PropertiesUtil  {
   public static final byte[] KEY = { 9, -1, 0, 5, 39, 8, 6, 19 };
   private static Environment env;
   @Autowired
   protected void set(Environment env) throws IOException {
      PropertiesUtil.env = env;
   }

   /**
    * Get a value based on key , if key does not exist , null is returned
    * 
    * @param key
    * @return
    */
   public static String getString(String key) {
      try {
         return env.getProperty(key);
      } catch (MissingResourceException e) {
         return null;
      }
   }

   /**
    * Get a value based on key , if key does not exist , null is returned
    * 
    * @param key
    * @return
    */
   public static String getString(String key, String defaultValue) {
      try {
         String value = env.getProperty(key);
         if (DataUtil.isEmpty(value)) {
            return defaultValue;
         }
         return value;
      } catch (MissingResourceException e) {
         return defaultValue;
      }
   }

   /**
    * 根据key获取值
    * 
    * @param key
    * @return
    */
   public static int getInt(String key) {
      return Integer.parseInt(env.getProperty(key));
   }

   /**
    * 根据key获取值
    * 
    * @param key
    * @param defaultValue
    * @return
    */
   public static int getInt(String key, int defaultValue) {
      String value = env.getProperty(key);
      if (StringUtils.isBlank(value)) {
         return defaultValue;
      }
      return Integer.parseInt(value);
   }

   /**
    * 根据key获取值
    * 
    * @param key
    * @param defaultValue
    * @return
    */
   public static boolean getBoolean(String key, boolean defaultValue) {
      String value = env.getProperty(key);
      if (StringUtils.isBlank(value)) {
         return defaultValue;
      }
      return new Boolean(value);
   }
}

猜你喜欢

转载自blog.csdn.net/u011249282/article/details/80213880