欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

spring boot启动时加载外部配置文件的方法

程序员文章站 2023-11-13 11:42:34
前言 相信很多人选择spring boot主要是考虑到它既能兼顾spring的强大功能,还能实现快速开发的便捷。本文主要给大家介绍了关于spring boot启动时加载外...

前言

相信很多人选择spring boot主要是考虑到它既能兼顾spring的强大功能,还能实现快速开发的便捷。本文主要给大家介绍了关于spring boot启动时加载外部配置文件的相关内容,下面话不多说了,来随着小编一起学习学习吧。

业务需求:

加载外部配置文件,部署时更改比较方便。

先上代码:

@springbootapplication
public class application {

 public static void main(string[] args) throws exception {
  springapplicationbuilder springapplicationbuilder = new springapplicationbuilder(application.class);
  springapplicationbuilder.web(true);
  properties properties = getproperties();
  standardenvironment environment = new standardenvironment();
  environment.getpropertysources().addlast(new propertiespropertysource("micro-service", properties));
  springapplicationbuilder.environment(environment);
  springapplicationbuilder.run(args);
 }

 private static properties getproperties() throws ioexception {
  propertiesfactorybean propertiesfactorybean = new propertiesfactorybean();
  resourcepatternresolver resolver = new pathmatchingresourcepatternresolver();
  propertiesfactorybean.setignoreresourcenotfound(true);
  resource filesystemresource = resolver.getresource("file:/opt/company/test.properties");
  propertiesfactorybean.setlocations(filesystemresource);
  propertiesfactorybean.afterpropertiesset();
  return propertiesfactorybean.getobject();
 }
}

使用变量的工具类

@component
public class environmentutil {
 private static environment environment;
 @autowired
 public void setenvironment(environment environment) {
  environmentutil.environment = environment;
 }

 public static <t> t getproperty(string key, class<t> targettype, t defaultvalue) {
  return environment.getproperty(key, targettype, defaultvalue);
 }

 public static <t> t getproperty(string key, class<t> targettype) {
  return environment.getproperty(key, targettype);
 }

 public static string getproperty(string key) {
  return environment.getproperty(key);
 }

 public static string getproperty(string key, string defaultvalue) {
  return environment.getproperty(key, defaultvalue);
 }

 public static integer getinteger(string key, integer defaultvalue) {
  return environment.getproperty(key, integer.class, defaultvalue);
 }
}

也可以通过@value("${key}")使用

这中加载方法优先级很高,如果与spring boot配置文件同名,将覆盖application.properties文件中的配置。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。