¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill åºéª (smallchill@163.com) |
| | | */ |
| | | package org.springblade.core.launch.props; |
| | | |
| | | import lombok.Getter; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.context.EnvironmentAware; |
| | | import org.springframework.core.env.Environment; |
| | | import org.springframework.core.env.EnvironmentCapable; |
| | | import org.springframework.lang.Nullable; |
| | | import org.springframework.util.Assert; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * é
ç½®æä»¶ |
| | | * |
| | | * @author Chill |
| | | */ |
| | | @ConfigurationProperties("blade") |
| | | public class BladeProperties implements EnvironmentAware, EnvironmentCapable { |
| | | @Nullable |
| | | private Environment environment; |
| | | |
| | | /** |
| | | * è£
è½½èªå®ä¹é
ç½®blade.prop.xxx |
| | | */ |
| | | @Getter |
| | | private final Map<String, String> prop = new HashMap<>(); |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @return value |
| | | */ |
| | | @Nullable |
| | | public String get(String key) { |
| | | return get(key, null); |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @param defaultValue é»è®¤å¼ |
| | | * @return value |
| | | */ |
| | | @Nullable |
| | | public String get(String key, @Nullable String defaultValue) { |
| | | String value = prop.get(key); |
| | | if (value == null) { |
| | | return defaultValue; |
| | | } |
| | | return value; |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @return int value |
| | | */ |
| | | @Nullable |
| | | public Integer getInt(String key) { |
| | | return getInt(key, null); |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @param defaultValue é»è®¤å¼ |
| | | * @return int value |
| | | */ |
| | | @Nullable |
| | | public Integer getInt(String key, @Nullable Integer defaultValue) { |
| | | String value = prop.get(key); |
| | | if (value != null) { |
| | | return Integer.valueOf(value.trim()); |
| | | } |
| | | return defaultValue; |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @return long value |
| | | */ |
| | | @Nullable |
| | | public Long getLong(String key) { |
| | | return getLong(key, null); |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @param defaultValue é»è®¤å¼ |
| | | * @return long value |
| | | */ |
| | | @Nullable |
| | | public Long getLong(String key, @Nullable Long defaultValue) { |
| | | String value = prop.get(key); |
| | | if (value != null) { |
| | | return Long.valueOf(value.trim()); |
| | | } |
| | | return defaultValue; |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @return Boolean value |
| | | */ |
| | | @Nullable |
| | | public Boolean getBoolean(String key) { |
| | | return getBoolean(key, null); |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @param defaultValue é»è®¤å¼ |
| | | * @return Boolean value |
| | | */ |
| | | @Nullable |
| | | public Boolean getBoolean(String key, @Nullable Boolean defaultValue) { |
| | | String value = prop.get(key); |
| | | if (value != null) { |
| | | value = value.toLowerCase().trim(); |
| | | return Boolean.parseBoolean(value); |
| | | } |
| | | return defaultValue; |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @return double value |
| | | */ |
| | | @Nullable |
| | | public Double getDouble(String key) { |
| | | return getDouble(key, null); |
| | | } |
| | | |
| | | /** |
| | | * è·åé
ç½® |
| | | * |
| | | * @param key key |
| | | * @param defaultValue é»è®¤å¼ |
| | | * @return double value |
| | | */ |
| | | @Nullable |
| | | public Double getDouble(String key, @Nullable Double defaultValue) { |
| | | String value = prop.get(key); |
| | | if (value != null) { |
| | | return Double.parseDouble(value.trim()); |
| | | } |
| | | return defaultValue; |
| | | } |
| | | |
| | | /** |
| | | * 夿æ¯å¦åå¨key |
| | | * |
| | | * @param key prop key |
| | | * @return boolean |
| | | */ |
| | | public boolean containsKey(String key) { |
| | | return prop.containsKey(key); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ç¯å¢ï¼æ¹ä¾¿å¨ä»£ç ä¸è·å |
| | | * |
| | | * @return ç¯å¢ env |
| | | */ |
| | | public String getEnv() { |
| | | Objects.requireNonNull(environment, "Spring boot ç¯å¢ä¸ Environment ä¸å¯è½ä¸ºnull"); |
| | | String env = environment.getProperty("blade.env"); |
| | | Assert.notNull(env, "è¯·ä½¿ç¨ BladeApplication å¯å¨..."); |
| | | return env; |
| | | } |
| | | |
| | | /** |
| | | * åºç¨åç§°${spring.application.name} |
| | | * |
| | | * @return åºç¨å |
| | | */ |
| | | public String getName() { |
| | | Objects.requireNonNull(environment, "Spring boot ç¯å¢ä¸ Environment ä¸å¯è½ä¸ºnull"); |
| | | return environment.getProperty("spring.application.name", environment.getProperty("blade.name", "")); |
| | | } |
| | | |
| | | @Override |
| | | public void setEnvironment(Environment environment) { |
| | | this.environment = environment; |
| | | } |
| | | |
| | | @Override |
| | | public Environment getEnvironment() { |
| | | Objects.requireNonNull(environment, "Spring boot ç¯å¢ä¸ Environment ä¸å¯è½ä¸ºnull"); |
| | | return this.environment; |
| | | } |
| | | } |