Spring中的Environment

用来表示整个应用运行时的环境,为了更形象地理解Environment,你可以把Spring应用的运行时简单地想象成两个部分:一个是Spring应用本身,一个是Spring应用所处的环境,而Environment这个接口,就是对这个所处的环境的概念性建模。

Environment在容器中是一个抽象的集合,是指应用环境的2个方面:profiles和properties。

Profile

profile配置是一个被命名的、bean定义的逻辑组,这些bean只有在给定的profile配置激活时才会注册到容器。不管是XML还是注解,Beans都有可能指派给profile配置。Environment环境对象的作用,对于profiles配置来说,它能决定当前激活的是哪个profile配置,和哪个profile是默认。

 

  • 一个profile就是一组Bean定义的逻辑分组。
  • 这个分组,也就 这个profile,被赋予一个命名,就是这个profile名字。
  • 只有当一个profile处于active状态时,它对应的逻辑上组织在一起的这些Bean定义才会被注册到容器中。
  • Bean添加到profile可以通过XML定义方式或才annotation注解方式。
  • Environment对于profile所扮演的角色是用来指定哪些profile是当前活跃的缺省。

Properties

properties属性可能来源于properties文件、JVM properties、system环境变量、JNDI、servlet context parameters上下文参数、专门的properties对象,Maps等等。Environment对象的作用,对于properties来说,是提供给用户方便的服务接口、方便撰写配置、方便解析配置。

 

  • 配置属性源。
  • 从属性源中获取属性。

容器(ApplicationContext)所管理的bean如果想直接使用Environment对象访问profile状态或者获取属性,可以有两种方式

(1)实现EnvironmentAware接口。

(2)@Inject或者@Autowired一个Environment对象。

绝大数情况下,bean都不需要直接访问Environment对象,而是通过类似@Value注解的方式把属性值注入进来。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SpringEnvironment是用来获取应用程序的配置信息的一个接口。它可以读取环境变量、系统属性、以及应用程序的配置文件的属性等信息。 使用Environment接口需要先将其注入到Spring容器,可以通过在配置类上添加@PropertySource注解或在XML配置文件添加<context:property-placeholder>标签来指定应用程序的配置文件。接着就可以通过@Autowired或@Resource注解将Environment注入到需要使用的类,并通过其方法来获取配置信息。 下面是一个简单的案例,演示了如何使用Environment获取应用程序的配置信息: ```java @Configuration @PropertySource("classpath:config.properties") public class AppConfig { @Autowired private Environment env; @Bean public DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(env.getProperty("db.driverClassName")); dataSource.setUrl(env.getProperty("db.url")); dataSource.setUsername(env.getProperty("db.username")); dataSource.setPassword(env.getProperty("db.password")); return dataSource; } } ``` 在上述案例,我们首先使用@PropertySource注解指定了应用程序的配置文件为classpath:config.properties。接着在AppConfig类Environment注入,并通过其getProperty方法读取配置文件的属性值,并设置到BasicDataSource对象,最终返回该对象。 值得注意的是,Environment接口的getProperty方法有多个重载版本,可以根据需要来选择不同的方法。同时,Spring还提供了其他一些与Environment相关的接口,例如PropertyResolver、PropertySources等,它们也可以帮助我们更方便地获取应用程序的配置信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值