> YMP中文手册 > 2-1核心概述

核心概述


YMP框架主要是由核心(Core)和若干模块(Modules)组成,核心主要负责框架的初始化和模块的生命周期管理。

主要核心功能

  • Beans:类对象管理器(微型的Spring容器),提供包类的自动扫描(AutoScan)以及Bean生命周期管理、依赖注入(IoC)和方法拦截(AOP)等特性。

  • Event:事件服务,通过事件注册和广播的方式触发和监听事件动作,并支持同步和异步两种模式执行事件队列。

  • Module:模块,是YMP框架所有功能特性封装的基础形式,负责模块的生命周期管理,模块将在框架初始化时自动加载并初始化,在框架销毁时自动销毁。

  • I18N:国际化资源管理器,提供统一的资源文件加载、销毁和内容读取,支持自定义资源加载和语言变化的事件监听。

  • Lang:提供了一组自定义的数据结构,它们在部分模块中起到了重要的作用,包括:

    • BlurObject:用于解决常用数据类型间转换的模糊对象。
    • PairObject:用于将两个独立的对象捆绑在一起的结对对象。
    • TreeObject:使用级联方式存储各种数据类型,不限层级深度的树型对象。
  • Util:提供框架中需要的各种工具类。

maven包依赖

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

:若想单独使用YMP核心包时需要在pom.xml中添加上述配置,其它模块已经默认引入核心包依赖,无需重复配置。

框架初始化

YMP框架的初始化是从加载ymp-conf.properties文件开始的,该文件必须被放置在classpath的根路径下;

  • 根据程序运行环境的不同,YMP框架初始化时将根据当前操作系统优先级加载配置:

    • Unix/Linux环境下,优先加载 ymp-conf_UNIX.properties;
    • Windows环境下,优先加载 ymp-conf_WIN.properties;
    • 若以上配置文件未找到,则加载默认配置 ymp-conf.properties;
  • 框架初始化基本配置参数:

    #-------------------------------------
    # 框架基本配置参数
    #-------------------------------------
    
    # 是否为开发模式,默认为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!
  • 测试代码,完成框架的启动和销毁:

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