核心概述

2018-12-24 21:47 更新

YMP框架主要是由核心(Core)和若干模塊(Modules)組成,核心主要負責框架的初始化和模塊的生命周期管理。

主要核心功能

  • Beans:類對象管理器(微型的Spring容器),提供包類的自動掃描(AutoScan)以及Bean生命周期管理、依賴注入(IoC)和方法攔截(AOP)等特性。

  • Event:事件服務,通過事件注冊和廣播的方式觸發(fā)和監(jiān)聽事件動作,并支持同步和異步兩種模式執(zhí)行事件隊列。

  • Module:模塊,是YMP框架所有功能特性封裝的基礎形式,負責模塊的生命周期管理,模塊將在框架初始化時自動加載并初始化,在框架銷毀時自動銷毀。

  • I18N:國際化資源管理器,提供統(tǒng)一的資源文件加載、銷毀和內(nèi)容讀取,支持自定義資源加載和語言變化的事件監(jiān)聽。

  • Lang:提供了一組自定義的數(shù)據(jù)結構,它們在部分模塊中起到了重要的作用,包括:

    • BlurObject:用于解決常用數(shù)據(jù)類型間轉換的模糊對象。
    • PairObject:用于將兩個獨立的對象捆綁在一起的結對對象。
    • TreeObject:使用級聯(lián)方式存儲各種數(shù)據(jù)類型,不限層級深度的樹型對象。
  • Util:提供框架中需要的各種工具類。

Maven包依賴

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

:若想單獨使用YMP核心包時需要在pom.xml中添加上述配置,其它模塊已經(jīng)默認引入核心包依賴,無需重復配置。

框架初始化

YMP框架的初始化是從加載ymp-conf.properties文件開始的,該文件必須被放置在classpath的根路徑下;

  • 根據(jù)程序運行環(huán)境的不同,YMP框架初始化時將根據(jù)當前操作系統(tǒng)優(yōu)先級加載配置:

    • Unix/Linux環(huán)境下,優(yōu)先加載 ymp-conf_UNIX.properties;
    • Windows環(huán)境下,優(yōu)先加載 ymp-conf_WIN.properties;
    • 若以上配置文件未找到,則加載默認配置 ymp-conf.properties;
  • 框架初始化基本配置參數(shù):

    #-------------------------------------
    # 框架基本配置參數(shù)
    #-------------------------------------
    
    # 是否為開發(fā)模式,默認為false
    ymp.dev_mode=
    
    # 框架自動掃描的包路徑集合,多個包名之間用'|'分隔,默認已包含net.ymate.platform包,其子包也將被掃描
    ymp.autoscan_packages=
    
    # 包文件排除列表,多個文件名稱之間用'|'分隔,被包含的JAR或ZIP文件在掃描過程中將被忽略
    ymp.excluded_files=
    
    # 模塊排除列表,多個模塊名稱或類名之間用'|'分隔,被包含的模塊在加載過程中將被忽略
    ymp.excluded_modules=
    
    # 國際化資源默認語言設置,可選參數(shù),默認采用系統(tǒng)環(huán)境語言
    ymp.i18n_default_locale=zh_CN
    
    # 國際化資源管理器事件監(jiān)聽處理器,可選參數(shù),默認為空
    ymp.i18n_event_handler_class=
    
    # 框架全局自定義參數(shù),xxx表示自定義參數(shù)名稱,vvv表示參數(shù)值
    ymp.params.xxx=vvv
    
    # 本文測試使用的自定義參數(shù)
    ymp.params.helloworld=Hello, YMP!
    
  • 測試代碼,完成框架的啟動和銷毀:

    public static void main(String[] args) throws Exception {
        YMP.get().init();
        try {
            // 輸出自定義參數(shù)值:Hello, YMP!
            System.out.println(YMP.get().getConfig().getParam("helloworld"));
        } finally {
            YMP.get().destroy();
        }
    }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號