Springboot 项目启动后获取配置属性
需求:
需要实现,在启动服务后,打开服务指定页面;
实现
考虑在服务启动类中,获取服务 ip 和端口,项目路径等信息;拼接指定网址页面;
代码:
以服务启动后,打开 swagger 接口页面;
打开浏览器,需要区分一下系统:获取操作系统的名字
System.getProperty("os.name", "")
参考代码如下
在启动类获取环境属性:只有使用
ConfigurableApplicationContext 和 Environment
ConfigurableApplicationContext 直接继承了 ApplicationContext, Lifecycle, Closeable 接口,所以 ConfigurableApplicationContext 是 ApplicationContext 的子类
Environment 这个接口代表应用运行时的环境。访问 property 的方法通过 Environment 继承的接口 PropertyResolver 暴露出去的。数据来源有以下的几个方面
properties 文件 JVM 系统属性系统环境变量 JNDIServlet 上下文变量
Environment 在此基础上还提供了 Profile 特性,能够很好的对多环境支持。因此我们一般使用它,而不是底层接口 PropertyResolver。 可以简单粗暴的把它理解为 Profile 和 PropertyResolver 的组合
获取到指定属性后,使用 String,format 格式化字符串;
注意
获取 path 属性时,参数要根据时间情况来定;如:
String path = env.getProperty("server.contextPath");或 String path = env.getProperty("server.servlet.context-path");
版权声明: 本文为 InfoQ 作者【技能实验室】的原创文章。
原文链接:【http://xie.infoq.cn/article/dcbf73450e2c91ebfb3e5f749】。文章转载请联系作者。
评论