手册

目录

示例二:解析Properties配置

收藏914

阅读11891

更新时间2022-04-11

  • 基于Properties文件的基础配置格式如下, 同样请将该文件命名为configuration.properties并放置在config_home路径下的cfgs目录里:

    #--------------------------------------------------------------------------
    # 配置文件内容格式: properties..=[propertyValue]
    #
    # 注意: attributes将作为关键字使用, 用于表示分类, 属性, 集合和MAP的子属性集合
    #--------------------------------------------------------------------------
    
    # 举例1: 默认分类下表示公司名称, 默认分类名称为default
    properties.default.company_name=Apple Inc.
    
    #--------------------------------------------------------------------------
    # 数组和集合数据类型的表示方法: 多个值之间用'|'分隔, 如: Value1|Value2|...|ValueN
    #--------------------------------------------------------------------------
    properties.default.products=iphone|ipad|imac|itouch
    
    #--------------------------------------------------------------------------
    # MAP数据类型的表示方法:
    # 如:产品规格(product_spec)的K分别是color|weight|size|age, 对应的V分别是热red|120g|small|2015
    #--------------------------------------------------------------------------
    properties.default.product_spec.color=red
    properties.default.product_spec.weight=120g
    properties.default.product_spec.size=small
    properties.default.product_spec.age=2015
    
    # 每个MAP都有属于其自身的属性列表(深度仅为一级), 用attributes表示, abc代表属性key, xyz代表属性值
    # 注: MAP数据类型的attributes和MAP本身的表示方法达到的效果是一样的
    properties.default.product_spec.attributes.abc=xyz
  • 修改配置类DemoConfig如下, 通过@ConfigurationProvider注解指定配置文件内容解析器:

    @Configuration("cfgs/configuration.properties")
    @ConfigurationProvider(PropertyConfigurationProvider.class)
    public class DemoConfig extends DefaultConfiguration {
    }

  • 测试代码, 完成模块初始化并加载配置文件内容:

    public static void main(String[] args) throws Exception {
        YMP.get().init();
        try {
            DemoConfig _cfg = new DemoConfig();
            if (Cfgs.get().fillCfg(_cfg)) {
                System.out.println(_cfg.getString("company_name"));
                System.out.println(_cfg.getMap("product_spec"));
                System.out.println(_cfg.getList("products"));
            }
        } finally {
            YMP.get().destroy();
        }
    }
  • 重新执行示例代码, 执行结果与示例一结果相同:

    Apple Inc.
    {abc=xzy, color=red, size=small, weight=120g, age=2015}
    [itouch, imac, ipad, iphone]

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号