Spring的PropertyResolver

PropertyResolver

这里的property是配置的意思,而非之前PropertyAccessor或者PropertyEditor中的属性的意思。

所以PropertyResolver是用来读取或者解析程序的配置信息的。需要注意的是,PropertyResolver并不仅仅只是通过String类型的key来获取String类型的value,它获取到的value可以是任意Java类型。

ConfigurablePropertyResolver

可配置的配置解析器,内部持有一个ConversionService,以便在需要的时候进行类型转换。要注意,这里的Configurable并不是可以去设置配置项,而是去配置在获取配置时的一些信息,主要包括:占位符、分隔符的格式,是否有必须的配置项等。

AbstractPropertyResolver

ConfigurablePropertyResolver的抽象的实现类,实现了大部分方法。

PropertySourcesPropertyResolver

ConfigurablePropertyResolver的最终实现类,其内部持有一个PropertySources实例,从中获取配置。

Environment

表示程序当前运行的环境(比如生产/预发/测试/开发等)。

ConfigurableEnvironment

可配置的环境,相比Environment,提供set和add方法。

AbstractEnvironment

Environment的抽象实现类。

StandardEnvironment、StandardServletEnvironment

StandardEnvironment在非WEB应用中使用,StandardServletEnvironment则在WEB应用中使用。

EnvironmentCapable

它与上面介绍的其实不在一个范畴,放在这里是因为与环境相关。它表示一个组件可以关联一个Environment。

1111

Last updated