跳至主要內容

模块

Mr.Hope大约 4 分钟

模块

模块在 Oinone 平台中扮演着最小的运行单元的角色。Oinone 被构建为一款可分离、可集成的应用程序,每个模块都是独立的功能单元,可以单独运行,也可以与其他模块集成以实现更强大的功能。这种可分离性使得企业可以根据自身的需求,选择并集成特定的模块,从而实现个性化的数字化转型方案。 同时,Oinone 的可集成性使得不同模块可以协同工作,共享数据和功能,实现全面而高效的业务流程。这种设计理念使 Oinone 成为一个灵活、适应性强的数字化转型工具,能够满足各种企业的需求,无论其规模或行业。

Module的定义

示例DemoModule的定义,Oinone的所有Module都继承自PamirsModule。

配置扫描路径

设置扫描模型配置的包路径:

  • 使用packagePrefix方法来配置模块需要扫描模型配置的包路径
  • 使用dependentPackagePrefix方法来配置依赖模块的模型配置的包路径;如果不配置,会默认根据依赖模块的配置扫描模型配置的包路径扫描依赖模型
@Component
@Module(
        name = DemoModule.MODULE_NAME,
        displayName = "oinoneDemo工程",
        version = "1.0.0",
        dependencies = {ModuleConstants.MODULE_BASE, CommonModule.MODULE_MODULE,
                FileModule.MODULE_MODULE, SecondModule.MODULE_MODULE
        }
)
@Module.module(DemoModule.MODULE_MODULE)
@Module.Advanced(selfBuilt = true, application = true)
@UxHomepage(@UxRoute(model = PetShopProxy.MODEL_MODEL))
public class DemoModule implements PamirsModule {

    public static final String MODULE_MODULE = "demo_core";

    public static final String MODULE_NAME = "DemoCore";

    @Override
    public String[] packagePrefix() {
        return new String[]{
                "pro.shushi.pamirs.demo"
        };
    }
}

模块是 Oinone 平台的最小单元。以下是模块注解 Module 的属性及其描述:

  • value / displayName: 显示名称。
  • name: 模块 API 名称,只支持大小写英文和数字,且以英文字符开头。
  • version: 模块在 repository 上发布的最新版本,默认为 "1.0.0"。
  • category: 模块的分类编码。
  • summary: 模块的描述摘要。
  • dependencies: 依赖模块名列表,默认依赖基础模块。
  • exclusions: 互斥模块名列表。
  • clientTypes: 支持的客户端类型,默认包括 PC 和 MOBILE。
  • show: 模块是否显示,默认为 ACTIVE。
  • priority: 排序优先级,默认为 100,用于排序。

@Module.Ds

@Module.Ds(value = "")

这段代码定义了一个注解 Ds,用于指定数据源的名称。该注解具有以下属性:

  • value: 数据源的名称,默认为空字符串。

@Module.Hook

@Module.Hook(excludes = {})

注解具有以下属性:

  • excludes: 排除拦截器列表

@Module.module

@Module.module(value = "")

这段代码定义了一个注解 Module,用于标识模块。该注解具有以下属性:

  • value: 模块编码,严重警告:若已安装,该值不可变更;若变更则认为是新模块。只支持小写英文、数字和下划线,且由英文字符开头。

该注解用于标记类为一个模块,并提供了模块编码的属性。

@Module.Advanced

@Module.Advanced(abbr = "",
                 author = "",
                 description = "",
                 application = true,
                 demo = false,
                 web = true,
                 selfBuilt = false,
                 toBuy = false,
                 website = "",
                 license = SoftwareLicenseEnum.PEEL1,
                 maintainer = "",
                 contributors = "",
                 url = ""
)

这段代码定义了一个注解 Advanced,用于设置模块的高级属性。该注解具有以下属性:

  • abbr: 模块名简称,小于等于8个字符,只支持小写英文和数字,且由英文字符开头。如果缺省,则取模块编码的最后部分字符,如果超出8个字符,则取前8个字符。
  • author: 模块的作者。
  • description: 模块的描述信息。
  • application: 是否为应用模块,即可访问页面的模块,默认为true。
  • demo: 是否为演示模块,默认为false。
  • web: 是否为Web模块,默认为true。
  • selfBuilt: 是否为自建应用模块,默认为false。
  • toBuy: 是否需要跳转到网站进行购买,默认为false。
  • website: 模块的网站地址。
  • license: 软件许可证类型,默认为PEEL1。
  • maintainer: 维护者。
  • contributors: 贡献者列表。
  • url: 代码库的地址。

@Boot

@Boot(true)

这段代码定义了一个名为 Boot 的注解,用于标记是否为自动安装的引导启动项。该注解具有以下属性:

  • value: 表示是否为引导项,默认为 true

UeModule

是对ModuleDefinition的继承,并扩展了跟前端交互相关的元数据

元素数据构成含 义对应注解备注
homePageModel跳转模型编码@UxHomepage(@UxRoute())对应一个ViewAction,如果UxRoute只配置了模型,则默认到该模型的列表页
homePageName视图动作或者链接动作名称
logo图标@UxAppLogo(logo="")