Spring运行期间配置文件解析返回

在Spring中有一个接口,可以做到在代码运行期间获取到配置文件的属性,也就是可以做到自己定义并解析@Value("${}")注解的功能。

public interface EmbeddedValueResolverAware extends Aware {


	/**
	 * Set the StringValueResolver to use for resolving embedded definition values.
	 */
	void setEmbeddedValueResolver(StringValueResolver resolver);


}

就是EmbeddedValueResolverAware,这个接口里有一个方法,功能就是:【把这个StringValueResolver用作解析内置定义的值(也就是配置文件+系统默认配置)】,使用起来也比较简单,如下:

先定义一个自己的类ValueResolverAwareConfig,然后实现EmbeddedValueResolverAware这个接口,然后把StringValueResolver设置给了自己的类的值。

@Configuration
public class ValueResolverAwareConfig implements EmbeddedValueResolverAware {

    public void setEmbeddedValueResolver(StringValueResolver resolver) {
        HttpInvokerHandler.setProps(resolver);
    }
}

然后在使用这个resolver的时候是这样的:

resolver.resolveStringValue(key)

返回值就是这个key对应在配置文件里的值了,为String类型。

借用这个,我们就可以实现自己的@Value注解,或者在代码里写${""}这种形式的代码并自己做解析。

猜你喜欢

转载自blog.csdn.net/doujinlong1/article/details/80611175