用户工具

站点工具


light4j:light-4j

light-4j.pdfOpenAPI

  • server:com.networknt.server.Server
    1. loadConfig:DefaultConfigLoader.init,通过startup从网络获取values配置(config支持inject)
    2. mergeStatusConfig:检查app-status配置,无冲突时增加到status状态码配置
    3. start:加载service单例,StartupHookProvider,加载handler或middleware
      • handler优先:继承HttpHandler或HandlerProvider,支持string、map-set字段、list-多参构造
      • middleware默认:从service获取HandlerProvider,再获取MiddlewareHandler构成处理器链
      • GracefulShutdownHandler:附加到处理器链的开头,调用server.shutdown时响应503并关停应用
    4. bind:使用Undertow.Builder配置port、https等,可选注册到registry
  • config
    1. 配置加载顺序:config,server,values,app-status,service,handler
    2. getConfigStream:-Dlight-4j-config-dir > classpath > config/,startup会下载certs、files到目录
    3. CentralizedManagement.mergeObject:ConfigInjection.getInjectValue获取values、env或default值
  • service:支持单例、多例、map-set字段、list-多参构造、多接口、泛型接口
    1. HandlerProvider:使用Handlers.routing、path等,在没有handler配置时才生效
    2. MiddlewareHandler:exceptionmetricstraceabilitycorrelationcorsopenapibodyauditsanitizer,ModuleRegistry.registerModule注册模块
  • handler:Handler.next(exchange, next)触发下一个handler
    1. initHandlers:处理handlers,支持class@name、map-set字段、list-多参构造
    2. initChains:处理chains,根据name从handlers取出实例构建处理器链
    3. initPaths:处理paths,path单方法路径、source多方法路径,使用PathTemplateMatcher匹配路径
    4. initDefaultHandlers:处理defaultHandlers,Handler.setLastHandler可选项
    5. OrchestrationHandler:匹配方法路径,否则defaultHandlers或报错,exchange.getAttachment
    1. consul
    2. zookeeper:zkclient
    3. direct:直连测试
light4j/light-4j.txt · 最后更改: 2020/08/12 12:52 由 admin