第十九章:Spring Environment抽象

理解 Spring Environment 抽象

  • 统一的Spring配置属性管理
    Spring Framework 3.1开始引入Environment抽象,它统一Spring配置属性的存储/包括占位符处理和类型转
    换,不仅完整地替换PropertyPlaceholderConfigurer,而且还支持更丰富的配置属性源(Propertysource)
  • 条件化Spring Bean装配管理
    通过Environment Profiles信息/帮助Spring容器提供条件化地装配Bean

Spring Environment 接口使用场景

用于属性占位符处理
用于转换Spring配置属性类型
用于存储Spring配置属性源(Propertysource) •用于Profiles状态的维护

依赖注入Environment

  • 直接依赖注入
    通过 EnvironmentAware 接口回调
    通过 @Autowired 注入 Environment
  • 间接依赖注入
    通过 ApplicationContextAware 接口回调
    通过 @Autowired 注入 Applicationcontext

依赖查找Environment

  • 直接依赖查找
  • 通过org.springframework.context,ConfigurableApplicationContext#ENVIRONMENT_BEAN_NAME
  • 间接依赖查找
    通过 org.springframework.context.ConfigurableApplicationContext#getEnvironment

Spring类型转换在Environment中的运用

  • 底层实现-org.springframework.core.env.PropertySourcesPropertyResolver
    核心方法-convertValuelfNecessary(Object7Class)
  • 底层服务-org.springframework.core.convert.ConversionService
    默认实现-org.springframework.core.convert.support.DefaultConversionService

Spring类型转换在@Value中的运用

  • 底层实现-org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
    org.springframework.beans.factory.support.DefaultListableBeanFactory#doResolveDependency
  • 底层服务-org.springframework.beans.TypeConverter
    默认实现-org.springframework.beans.TypeConverterDelegate
    ava.beans.PropertyEditor
    org.springframework.core.convert.ConversionService

Spring 配置属性源 Propertysource

  • API
    单配置属性源-org.springframework.core.env.PropertySource
    多配置属性源-org.springframework.core.env.PropertySources
  • 注解
    – 单配置属性源-@org.springframework.context.annotation.PropertySource
    – 多配置属性源-@org.springframework.context.annotation.PropertySources •关联
    – 存储对象-org.springframework.core.env.MutablePropertySources
    – 关联方法-org.springframework.core.env.ConfigurableEnvironment#getPropertySources()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值