当前位置:
首页
文章
后端
详情

Foxnic-Web —— 参数体系

Foxnic-Web —— 参数体系
概述

  所谓参数即程序在运行时可以或得到的一些基础环境或相关的配置信息。这些信息来自各个不同的地方,有系统参数、程序的启动参数,程序的 YML 配置文件参数以及系统本身在数据库配置表的配置参数。这些参数信息通过程序相互协同,使系统在不同是实施场景有不同的表现。

  本文中的示例代码均可在 https://gitee.com/LeeFJ/foxnic-samples 项目中找到。

系统参数

  系统参数即通过 System.getProperties() 方法可以获得的参数清单,此处不作展开。Foxnic-Web 的应用会在启动时输出这些系统参数:

Foxnic-Web —— 参数体系

启动参数

  启动参数是指通过启动命令向 SpringBoot 应用传入的参数,他们被 main 函数的参数接收并处理。如图,设置两个参数 name=LeeFJ city=NingBo :

Foxnic-Web —— 参数体系

  当应用启动时,我们可以看到参数输出:

Foxnic-Web —— 参数体系

  在程序中可以通过 BootArgs.getArg("name") 方法获得参数值。另外,值得一提的是,通过 -D 传入的命令行参数可以通过 System.getProperties() 获得。

文件参数

  YML 参数即在 application.yml 或 application.properties 中配置的参数,这些参数可以通过 @Value 注解获取。在 Foxnic-Web 的应用中也可以通过 SpringUtil.getEnvProperty() 或其它类似的方法获取值。

Profile 参数

  系统参数是 Foxnic-Web 所特有的参数,这些参数存放在数据库的表中。Foxnic-Web 将一组树形参数称之为 Profile,其中默认的 Profile 作为基础 Profile,不同的 Pofile 之间可以相互叠加使用。Profile 的叠加方式由 YML 文件中的 foxnic.config.profiles 配置项决定。

  Profile 的维护界面从 Foxnic-Web 1.7 版本开始使用新的维护界面,如图所示:

Foxnic-Web —— 参数体系

  系统参数的取值通过 SystemConfigProxyUtil 类提供的方法即可,另外,基于Foxnic-Web 代码生成的特性,这些配置好的系统参数可以生成枚举类,方便在开发时使用。

  Foxnic-Web 引入多 Profile 系统参数的好处显而易见,主要包括:

  • 系统参数时跟随数据库的,不同的环境可以有不同的配置,例如 sit 与 uat 环境可以使用不同的参数。
  • 因为系统参数是在数据库内的,他的修改比较方便,而且可以即时生效,无需重启。
  • 因为 Profile 是可以叠加覆盖的,所以不同的场合可以有不同的组合,设置每个开发人员都可以使用不同的 Profile 避免相互干扰。
  • Foxnic-Web 专门为系统参数的管理提供了方便的管理界面,便于大量参数的管理。
小结

  本节从几个方面介绍了 Foxnic-Web 应用中参数的传入以及取值的方法。我想,在大多数的二开场景都会用到本文中提到的这些参数,希望对大家的二开有所助益。

相关项目

  https://gitee.com/LeeFJ/foxnic

  https://gitee.com/LeeFJ/foxnic-web

  https://gitee.com/lank/eam

  https://gitee.com/LeeFJ/foxnic-samples

官方文档

  http://foxnicweb.com/docs/doc.html

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型