一、application.properties 配置文件
①:用Spring容器获取Environment变量,然后getProperty获取到配置的value
ConfigurableEnvironment environment = context.getEnvironment();
String name = environment.getProperty("name");
②:@Value注解
使用@Value("${key}"
③:@ConfigurationProperties
@ConfigurationProperties注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,如:
@Component @ConfigurationProperties(prefix = "global.jdbc") public class GlobalProperties { private String url; private String driver; private String username; private String password; ...getter/setter }
二、自定义properties 配置文件
①:@PropertySource + @Value("${key}")
@PropertySource :使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量Environment中;
如:@PropertySource("classpath:mysql.properties")
取值方式:
①:使用@Value("${key}"
②:也可以用Spring容器获取Environment变量,然后getProperty获取到配置的value
ConfigurableEnvironment environment = context.getEnvironment();
String name = environment.getProperty("name");
②:自行直接读取配置文件的值并缓存
public class PropertiesUtil { private static final Logger LOGGER = LoggerFactory.getLogger(PropertiesUtil.class); private PropertiesUtil() { } private static final Properties PROPERTIES = readProperties("config.properties", "talos.properties"); private static Properties readProperties(String... confFile) { final Properties properties = new Properties(); try { for (String path : confFile) { final ClassPathResource resource = new ClassPathResource(path); properties.load(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8)); } } catch (IOException e) { LOGGER.error(e.getMessage(), e); } return properties; } public static String get(String key) { return PROPERTIES.getProperty(key); } }
END.