JSPM

  • Created
  • Published
  • Downloads 184
  • Score
    100M100P100Q73443F
  • License MIT

Web framework like java springboot

Package Exports

  • bpframework

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (bpframework) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Feature.

feature supports
config bootstrap.yml
SpringCloudConfig
discovery nacos
scheduling @Scheduled
api routers @RestController

Configure.

To enable features need suitable config

name description
FindMicroserviceConfigure 定义自定义的服务发现处理方法
FeignClientConfigure 定义FeignClient的默认headers等信息
RestControllerConfigure 定义RestController的默认headers等信息

@FindMicroserviceConfigure

By default, nacos is used to find micro-service; You can customize it by @FindMicroserviceConfigure.

@Service()
class Configure {
  @FindMicroserviceConfigure
  async onFindMicroservice(serviceName: string, excludeHost: string): Promise<ServiceInfo> {
    return {
      ip,
      port,
      serviceName,
      metadata,
    }
  }
}

@RestControllerConfigure

定义RestController的默认headers等信息, 使用如下方式.

@Service()
class Configure {
  @RestControllerConfigure
  onConfigure(): bp.RestControllerConfigureInfo {
    return {
      defaultHeaders: {'content-type': 'application/json;charset=utf-8'},
    }
  }
}

@FeignClientConfigure

定义FeignClient的默认headers等信息, 使用如下方式.

@Service()
class Configure {
  @FeignClientConfigure
  onConfigure(): bp.FeignClientConfigureInfo {
    return {
      defaultHeaders: {'content-type': 'application/json;charset=utf-8'},
      /**
       * 对每次请求后接收的消息进行过滤.
       */
      filterResponseCallback: (data: FeignClientFilterResponseData) => {
        
      }
    }
  }
}

Event Listener.

name description
ContextRefreshedEventListener 本地配置加载完成, 系统service对象初始化完成
RefreshRemoteEventListener 远程配置动态刷新事件
FeignClientFilterResponseEventListener 对feignClient请求接收的消息进行过滤的事件
RestControllerFilterResponseEventListener 对RestController的响应数据进行过滤的事件

@ContextRefreshedEventListener

本地配置加载完成, 系统service对象初始化完成.

@Service()
class ApplicationEvent {
  @ContextRefreshedEventListener
  async onContextRefreshed(ev:ContextRefreshedEvent):void {

  }
}

@RefreshRemoteEventListener

远程配置动态刷新事件.

@Service()
class ApplicationEvent {
  @RefreshRemoteEventListener
  async onRefreshRemote(ev:RefreshRemoteEvent):void {

  }
}

Scheduling

@Scheduled

使用此注解可以开启一个定时任务.

@Service()
class Demo {
  @Scheduled({cron:'* * * * * *'})
  async onTick(): Promise<false|void> {
    return false; // 返回false则表明停止此task.
  }
}
  • Start task: 当类实例被创建后, task即按照时间间隔运行
  • Stop task: 当@Scheduled修饰的方法明确返回false时, task将停止