Exemple 2 : configuration des propriétés d'analyse


  • Le format de configuration de base basé sur le fichier de propriétés est le suivant. Veuillez également nommer le fichier configuration.properties et le placer dans le répertoire cfgs sous le chemin config_home : config_home路径下的cfgs目录里:

    #--------------------------------------------------------------------------
    # 配置文件内容格式: properties.<categoryName>.<propertyName>=[propertyValue]
    #
    # 注意: attributes将作为关键字使用, 用于表示分类, 属性, 集合和MAP的子属性集合
    #--------------------------------------------------------------------------
    
    # 举例1: 默认分类下表示公司名称, 默认分类名称为default
    properties.default.company_name=Apple Inc.
    
    #--------------------------------------------------------------------------
    # 数组和集合数据类型的表示方法: 多个值之间用'|'分隔, 如: Value1|Value2|...|ValueN
    #--------------------------------------------------------------------------
    properties.default.products=iphone|ipad|imac|itouch
    
    #--------------------------------------------------------------------------
    # MAP<K, V>数据类型的表示方法:
    # 如:产品规格(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 {
    }
  • Modifiez la classe de configuration DemoConfig comme suit, spécifiez l'analyseur de contenu du fichier de configuration via l'annotation @ConfigurationProvider :


    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();
        }
    }

  • tester le code, terminer l'initialisation du module et chargez le contenu du fichier de configuration :

    Apple Inc.
    {abc=xzy, color=red, size=small, weight=120g, age=2015}
    [itouch, imac, ipad, iphone]
Réexécutez l'exemple de code, le résultat de l'exécution est le même que celui de l'exemple 1 :
🎜🎜rrreee🎜🎜🎜🎜🎜