Aperçu de base


Le framework YMP est principalement composé du noyau (Core) et de plusieurs modules (Modules). Le noyau est principalement responsable de l'initialisation du framework et de la gestion du cycle de vie des modules.

Principales fonctions de base

  • Beans : Gestionnaire d'objets de classe (conteneur micro Spring), assurant l'analyse automatique des classes de packages (AutoScan) ainsi que la gestion du cycle de vie des Beans, l'injection de dépendances (IoC) et l'interception de méthodes (AOP) et d'autres caractéristiques.

  • Événement : service d'événements, déclenche et surveille les actions d'événements via l'enregistrement et la diffusion d'événements, et prend en charge l'exécution de la file d'attente d'événements en modes synchrone et asynchrone.

  • Module : Le module est la forme de base d'encapsulation de toutes les fonctionnalités fonctionnelles du framework YMP. Il est responsable de la gestion du cycle de vie du module. Le module sera automatiquement chargé et initialisé lorsque le framework sera initialisé. être automatiquement détruit lorsque le framework est détruit.

  • I18N : gestionnaire de ressources international, fournit un chargement, une destruction et une lecture de contenu unifiés des fichiers de ressources, prend en charge le chargement de ressources personnalisées et la surveillance des événements pour les changements de langue.

  • Lang : fournit un ensemble de structures de données personnalisées, qui jouent un rôle important dans certains modules, notamment :

    • BlurObject : un objet flou utilisé pour résoudre les conversions entre les types de données courants.
    • PairObject : objet de paire utilisé pour regrouper deux objets indépendants.
    • TreeObject : utilisez la méthode en cascade pour stocker des objets arborescents de différents types de données sans limite de profondeur hiérarchique.
  • Util : Fournit diverses classes d'outils nécessaires dans le framework.

Dépendance du package Maven

<dependency>
    <groupId>net.ymate.platform</groupId>
    <artifactId>ymate-platform-core</artifactId>
    <version>2.0-SNAPSHOT</version>
</dependency>

Remarque : Si vous souhaitez utiliser le package principal YMP seul, vous devez ajouter la configuration ci-dessus dans pom.xml. dépendances par défaut, pas besoin de répéter la configuration.

Initialisation du framework

L'initialisation du framework YMP commence par le chargement du fichier ymp-conf.properties, qui doit être placé sous le chemin racine du chemin de classe

  • En fonction de l'environnement d'exécution du programme, lorsque YMP ; framework est initialisé La configuration sera chargée en fonction de la priorité du système d'exploitation actuel :

    • Dans un environnement Unix/Linux, ymp-conf_UNIX.properties sera chargé en premier ;
    • Dans un environnement Windows, ymp-conf_WIN.properties sera chargé en premier ;
    • Si le fichier de configuration ci-dessus n'est pas trouvé, Chargez ensuite la configuration par défaut ymp-conf.properties ;
  • Les paramètres de configuration de base de l'initialisation du framework :

    #-------------------------------------
    # 框架基本配置参数
    #-------------------------------------
    
    # 是否为开发模式,默认为false
    ymp.dev_mode=
    
    # 框架自动扫描的包路径集合,多个包名之间用'|'分隔,默认已包含net.ymate.platform包,其子包也将被扫描
    ymp.autoscan_packages=
    
    # 包文件排除列表,多个文件名称之间用'|'分隔,被包含的JAR或ZIP文件在扫描过程中将被忽略
    ymp.excluded_files=
    
    # 模块排除列表,多个模块名称或类名之间用'|'分隔,被包含的模块在加载过程中将被忽略
    ymp.excluded_modules=
    
    # 国际化资源默认语言设置,可选参数,默认采用系统环境语言
    ymp.i18n_default_locale=zh_CN
    
    # 国际化资源管理器事件监听处理器,可选参数,默认为空
    ymp.i18n_event_handler_class=
    
    # 框架全局自定义参数,xxx表示自定义参数名称,vvv表示参数值
    ymp.params.xxx=vvv
    
    # 本文测试使用的自定义参数
    ymp.params.helloworld=Hello, YMP!
  • Code de test , terminer le démarrage et la destruction du framework :

    public static void main(String[] args) throws Exception {
        YMP.get().init();
        try {
            // 输出自定义参数值:Hello, YMP!
            System.out.println(YMP.get().getConfig().getParam("helloworld"));
        } finally {
            YMP.get().destroy();
        }
    }