模块
大约 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="") |