============== Spring环境变量 ============== 1 Environment Environment是Spring提供的Bean对象,其中包含: - 操作系统环境变量 - JVM属性信息 - 应用属性文件(.properties)中的信息 对操作系统环境变量和JVM属性信息,Environment是自动获取的。 Environment获取其它属性信息,需要借助PropertySource注解,并指定属性源。 / classpath \ 资源前缀 - file - :/ \ http / 注意来自多个属性源的信息要避免键冲突。 @Configuration @PropertySource("classpath:/app.properties") public class Config { ________ Spring @Bean v 注入 public Env env1(Environment environment) { ... } } 例程:PrintEnv PrintEnv/src/main/resources右键 New File app.properties Driver = java.jdbc Name = minwei Code = 123456 2 Value 借助Value注解可以显式地将环境变量注入到Bean中。 @Configuration @PropertySource("classpath:/app.properties") public class Config { ... @Bean public Env env2( @Value("${OS}") String os, @Value("${Path}") String path, @Value("${Driver}") String driver, @Value("${Name}") String name, @Value("${Code}") String code) { ... } @Bean public Env env3( @Value("#{environment['OS']}") String os, @Value("#{environment['Path']}") String path, @Value("#{environment['Driver']}") String driver, @Value("#{environment['Name']}") String name, @Value("#{environment['Code']}") String code) { Env env = new Env(); env.os = os; env.path = path; env.driver = driver; env.name = name; env.code = code; return env; } } 例程:PrintEnv