当前位置: 首页 > 软件库 > Web应用开发 > 网页组件 >

Navi

组件化系统框架
授权协议 Apache
开发语言 Java
所属分类 Web应用开发、 网页组件
软件类型 开源软件
地区 国产
投 递 者 马安邦
操作系统 跨平台
开源组织 爱奇艺
适用人群 未知
 软件概览

Navi 项目介绍:

在过去的一年里,会员交易系统的下单服务进行了彻底重构。重构后,在下单服务上对接新支付方式的开发时间从过去的三天左右,变为现在的一小时左右,工作效率大幅提高。

这一成绩的实现依靠的是下单服务的核心框架。这套框架能够通过注解、文件等配置方式将不同组件动态组合,形成复杂而又完整的功能。这套框架会根据声明的路由配置,为每一次请求选择合适的组件,从而实现高内聚、低耦合的组件化设计。

为了能让其它项目也能享受到模块化设计的好处,我设计了 Navi 项目。Navi 项目将上述设计通用化,使得普通开发人员也能迅速实现组件化系统。

核心价值:Navi 的核心价值在于能够通过注解配置,实现类似于 MVC 框架那样的路由功能。使得开发人员可以迅速开发出组件化的复杂系统

如何使用:

@EqualMatcher(property = "clientType", value = "android")
@VersionMatcher(range = "[1.0.0,2.0.0)")
public class AndroidV1OrderCreateHandler implements OrderCreateHandler {

}

OrderRequest request = new OrderRequest():
request.setClientType("android");
request.setVersion("1.5.0");

// this handler is AndroidOrderCreateHandler
public class OrderCreateService {
    public OrderCreateResponse createOrder(OrderRequest request) {
        // ...
        // Trunk Logic
        // ...
        
        // Branch Logic
        OrderCreateHandler handler = selector.select(request, OrderCreateHandler.class);
        handler.handle(request);
        
        // ...
        // Trunk Logic
        // ...
    }
}
 相关资料
  • Spl标准库 API版本控制 Session 容器服务 日志 系统常量 ShareMemory RPC&SOA

  • function frameInitialized(); 执行完frameInitialize事件后,框架开始检查并处理运行环境,在执行frameInitialized事件时,框架已经完成的工作有: frameInitialize事件 系统运行目录的检查与创建 运行目录的检查与创建包括了以下工作: 在ROOT目录下创建临时目录Temp 在Temp目录下创建会话存放目录Session 在Temp目录

  • 框架初始化事件 function frameInitialize(); 在CLI模式下启动服务,框架首先进行自身的初始化预处理,然后调用本事件,在执行frameInitialize事件时,框架已经完成的预处理工作有: 系统常量ROOT的定义 注册自动加载与常用名称空间 定义错误处理函数 在该回调函数内可以创建一些全局配置。例如: date_default_timezone_set('Asia/Sh

  • Cache RPC Cluster Crontab SPl库 DI Invoker Logger

  • const DI_ERROR_HANDLER = 'DI_ERROR_HANDLER'; const DI_LOGGER_WRITER = 'DI_LOGGER_WRITER'; const DI_SESSION_HANDLER = 'DI_SESSION_HANDLER'; const CONTROLLER_MAX_DEPTH = 'CONTROLLER_MAX_DEPT

  • ShareMemory是为了解决多进程下进程数据隔离的问题。基于文件+锁的形式来实现。 方法列表 getInstance 用于获取一个ShareMemory实例。 use CoreComponentShareMemory; $share = ShareMemory::getInstance(); //或者是 $share = ShareMemory::getInstance(ShareMemory

  • Session 以下是一个封装好的Session操作类,可以简化对Session的操作,同时也展示了如何用框架本身的方法操作Session <?php class SessionFacade { /** * Set Session * @param $name * @param $value * @author : evalor <master@ev

  • log string $str 日志内容 string $category 日志分类名 $log->log('message1'); $log2->log('message2'); console string $str 调试内容 int $saveLog 是否保存 $log->console("message",false); consoleWithTrace string $str 调试内容