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]