Modul


Buat modul tersuai
  • Langkah 1: Buat antara muka perniagaan yang perlu didedahkan kepada dunia luar mengikut keperluan perniagaan

    public interface IDemoModule {
    
        // 为方便引用,定义模块名称常量
        String MODULE_NAME = "demomodule";
    
        // 返回自定义模块的参数配置接口对象
        IDemoModuleCfg getModuleCfg();
    
        // 对外暴露的业务方法
        String sayHi();
    }
  • Langkah 2: Proses konfigurasi modul tersuai . Kod berikut menganggap bahawa modul ujian mempunyai dua parameter tersuai

    // 定义模块配置接口
    public interface IDemoModuleCfg {
    
        String getModuleParamOne();
    
        String getModuleParamTwo();
    }
    
    // 实现模块配置接口
    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;
        }
    }
  • Langkah 3: Laksanakan modul dan antara muka perniagaan

    Nota: Pastikan jangan lupa untuk mengisytiharkan @Module kelas pelaksanaan, supaya ia boleh diimbas secara automatik, dimuatkan dan dimulakan oleh rangka kerja 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!";
        }
    }
  • Langkah 4: Tambahkan kandungan konfigurasi modul pada fail konfigurasi YMP ymp-conf.properties

    Format: ymp.configs.<Nama Modul>.<Nama Parameter> =[Nilai parameter]

    ymp.configs.demomodule.module_param_one=module_param_one_value
    ymp.configs.demomodule.module_param_two=module_param_two_value
Panggil modul tersuai

s tidak menyokong IoC, AOP dan ciri lain;