编写一个自己的插件,只需要实现 Plugin 接口即可。如果在启动或者停止返回 false,Cloudopt Next将会自动输出错误日志。
class TestPlugin:Plugin{
override fun start(): Boolean {
println("TestPlugin is starting!")
return true
}
override fun stop(): Boolean {
println("TestPlugin is stopping!")
return true
}
}
public class TestPlugin implements Plugin {
@Override
public boolean start() {
System.out.println("TestPlugin is starting!");
return true;
}
@Override
public boolean stop() {
System.out.println("TestPlugin is starting!");
return true;
}
}
我们还提供了大量的工具来帮助你更方便的开发插件。
自动扫描注解
Classer.scanPackageByAnnotation(CloudoptServer.packageName, true, AutoKafka::class.java)
.forEach { clazz ->
println(clazz)
}
}
自动创建对象
var obj = Beaner.newInstance<KafkaListener>(clazz)
读取配置文件
var config = ConfigManager.init("test")
获取所有的路由器
var controllers = NextServer.resourceTables
如果你添加了自己的额外的注解可以在插件扫描时获取 resourceTables 可以看到每个 url 对应的类及方法,从而直接通过resourceTables 获取每个方法或者类上自己自定义的注解。
当然你也可以自行注册一些固定路径的路由。
比如你现在写了个管理后台插件,那么可以通过操作 resourceTables 放入 /admin 路径的对应的处理方法,从而达到自动注册相关路由。