编写一个自己的插件,只需要实现 Plugin 接口即可。如果在启动或者停止返回 false,Cloudopt Next将会自动输出错误日志。

  1. class TestPlugin:Plugin{
  2. override fun start(): Boolean {
  3. println("TestPlugin is starting!")
  4. return true
  5. }
  6. override fun stop(): Boolean {
  7. println("TestPlugin is stopping!")
  8. return true
  9. }
  10. }
  1. public class TestPlugin implements Plugin {
  2. @Override
  3. public boolean start() {
  4. System.out.println("TestPlugin is starting!");
  5. return true;
  6. }
  7. @Override
  8. public boolean stop() {
  9. System.out.println("TestPlugin is starting!");
  10. return true;
  11. }
  12. }

我们还提供了大量的工具来帮助你更方便的开发插件。

自动扫描注解

  1. Classer.scanPackageByAnnotation(CloudoptServer.packageName, true, AutoKafka::class.java)
  2. .forEach { clazz ->
  3. println(clazz)
  4. }
  5. }

自动创建对象

  1. var obj = Beaner.newInstance<KafkaListener>(clazz)

读取配置文件

  1. var config = ConfigManager.init("test")

获取所有的路由器

  1. var controllers = NextServer.resourceTables

如果你添加了自己的额外的注解可以在插件扫描时获取 resourceTables 可以看到每个 url 对应的类及方法,从而直接通过resourceTables 获取每个方法或者类上自己自定义的注解。
当然你也可以自行注册一些固定路径的路由。
比如你现在写了个管理后台插件,那么可以通过操作 resourceTables 放入 /admin 路径的对应的处理方法,从而达到自动注册相关路由。