包结构长这个样子:
server包:(服务器相关配置)
HttpServer:用ver.x创建了一个http服务器,把接收到的req请求传入RPCRequest中;
RPCRequest:解析请求body内容,把信息保存为M(类名) A(方法名) P(参数),同时还拥有invoke()方法,根据m、a、p的数据用反射调用方法。
RPCResponse:没写,用来保存响应信息的。
controller包:(将所有需要被远程调用的方法保存到内容中,加快调用时遍历查询方法的响应速度)
MethodManager:里面声明一个HashMap,value是KFunction<*>保存所有被@RPC1注解的方法,同时有addAllMethod()方法,用来保存当前类所有带@RPC1注解的方法。
ControllerManager:用HashMap保存所有Controller类,value是KClass<*>,init中需要手动put添加controller类。
Service包:(提供业务方法,供调用)
LoginController:里面有Login()方法,当有登录验证请求时,被调用。
Mongo包:(数据持久层,与数据库打交道,应该写成Dao层的)
UserDao:用户集合的数据库操作。
Po包:(实体类)
User:将数据库查询出来的信息保存成User实体。
kotlin和vertx和mongo写的一个服务器验证登陆功能(很简陋)
原文地址:https://www.cnblogs.com/liumaowu/p/9372050.html
时间: 2024-10-17 06:57:31