Spring3.2 运行时环境

JerryXia 发表于 , 阅读 (0)
可以看到Environment定义了有关获取profile的方法,并且继承了PropertyResolver接口,该接口定义了从具体的属性源中解析属性的功能:
public interface PropertyResolver {	/**	 * 检查是否有某属性	 */	boolean containsProperty(String key);	/**	 * 获取某属性	 */	String getProperty(String key);	/**	 * 获取某属性,不存在则返回defaultValue	 */	String getProperty(String key, String defaultValue);	/**	 * 获取某属性,其值类型为T	 */	<T> T getProperty(String key, Class<T> targetType);	/**	 * 获取某属性,其值类型为T,不存在则返回defaultValue	 */	<T> T getProperty(String key, Class<T> targetType, T defaultValue);	/**	 * 获取某属性,并转换为对应的Class对象,失败会抛ConversionException	 */	<T> Class<T> getPropertyAsClass(String key, Class<T> targetType);	/**	 * 获取某属性,不存在抛出IllegalStateException	 */	String getRequiredProperty(String key) throws IllegalStateException;	/**	 * 获取某属性,其值类型为T,不存在抛出IllegalStateException	 */	<T> T getRequiredProperty(String key, Class<T> targetType) throws IllegalStateException;	/**	 * 解析占位符${...}	 */	String resolvePlaceholders(String text);	/**	 * 解析占位符${...},不存在抛出IllegalArgumentException	 */	String resolveRequiredPlaceholders(String text) throws IllegalArgumentException;}    

可见Spring环境主要由两个组件组成:配置(profile)属性(property)profile只是一个名称字符串,可对Bean容器中的Bean进行逻辑分组,即在定义Bean时,可以指定该Bean归入到某些profile中。Property则是大多应用所常见的,Spring中这些属性可以来自properties文件JVM系统属性系统环境变量JNDIServlet上下文参数Properties对象等。