W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
步驟一:根據(jù)業(yè)務需求創(chuàng)建需要對外暴露的業(yè)務接口
public interface IDemoModule { // 為方便引用,定義模塊名稱常量 String MODULE_NAME = "demomodule"; // 返回自定義模塊的參數(shù)配置接口對象 IDemoModuleCfg getModuleCfg(); // 對外暴露的業(yè)務方法 String sayHi(); }
步驟二:處理自定義模塊的配置參數(shù),下列代碼假定測試模塊有兩個自定義參數(shù)
// 定義模塊配置接口 public interface IDemoModuleCfg { String getModuleParamOne(); String getModuleParamTwo(); } // 實現(xiàn)模塊配置接口 public class DemoModuleCfg implements IDemoModuleCfg { private String __moduleParamOne; private String __moduleParamTwo; public DemoModuleCfg(YMP owner) { // 從YMP框架中獲取模塊配置映射 Map<String, String> _moduleCfgs = owner.getConfig().getModuleConfigs(IDemoModule.MODULE_NAME); // __moduleParamOne = _moduleCfgs.get("module_param_one"); __moduleParamTwo = _moduleCfgs.get("module_param_two"); } public String getModuleParamOne() { return __moduleParamOne; } public String getModuleParamTwo() { return __moduleParamTwo; } }
步驟三:實現(xiàn)模塊及業(yè)務接口
注:一定不要忘記在模塊實現(xiàn)類上聲明@Module
注解,這樣才能被YMP框架自動掃描、加載并初始化;
@Module public class DemoModule implements IModule, IDemoModule { private YMP __owner; private IDemoModuleCfg __moduleCfg; private boolean __inited; public String getName() { return IDemoModule.MODULE_NAME; } public void init(YMP owner) throws Exception { if (!__inited) { __owner = owner; __moduleCfg = new DemoModuleCfg(owner); // __inited = true; } } public boolean isInited() { return __inited; } public YMP getOwner() { return __owner; } public IDemoModuleCfg getModuleCfg() { return __moduleCfg; } public void destroy() throws Exception { if (__inited) { __inited = false; // __moduleCfg = null; __owner = null; } } public String sayHi() { return "Hi, YMP!"; } }
步驟四:在YMP的配置文件ymp-conf.properties中添加模塊的配置內(nèi)容
格式: ymp.configs.<模塊名稱>.<參數(shù)名稱>=[參數(shù)值]
ymp.configs.demomodule.module_param_one=module_param_one_value ymp.configs.demomodule.module_param_two=module_param_two_value
public static void main(String[] args) throws Exception { YMP.get().init(); try { // 獲取自定義模塊實例對象 IDemoModule _demoModule = YMP.get().getModule(IDemoModule.class); // 調(diào)用模塊業(yè)務接口方法 System.out.println(_demoModule.sayHi()); // 調(diào)用模塊配置信息 System.out.println(_demoModule.getModuleCfg().getModuleParamOne()); } finally { YMP.get().destroy(); } }
注:自定義模塊不支持IoC、AOP等特性;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: