当前位置: 首页 > news >正文

西安模板建站定制北京市建筑信息平台

西安模板建站定制,北京市建筑信息平台,dw网页制作素材+教程,本地门户网站源码就好像门牌号一样#xff0c;我们需要把消息路由到对应的楼栋和楼层#xff0c;总不能像菜鸟一样让大家都来自己找数据吧。 首先这里我们参考了rabbitmq中的topic与tag模型#xff0c;topic对应类#xff0c;tag对应方法。 新增一个模块#xff0c;专门记录路由eternity-…        就好像门牌号一样我们需要把消息路由到对应的楼栋和楼层总不能像菜鸟一样让大家都来自己找数据吧。 首先这里我们参考了rabbitmq中的topic与tag模型topic对应类tag对应方法。 新增一个模块专门记录路由eternity-command ServerTag.java public interface ServerTag {/**** 打招呼*/int TAG_HELLO_HI 1;} ServerTopic.java public interface ServerTopic {/**** 问候*/int TOPIC_HELLO 1;} 然后再core中引入这个模块同时增加反射依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.reflections/groupIdartifactIdreflections/artifactIdversion0.9.10/version/dependencydependencygroupIdcom.loveprogrammer/groupIdartifactIdeternity-common/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdcom.loveprogrammer/groupIdartifactIdeternity-command/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies 在core中增加一个文件夹 创建两个注解 TagListener import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.METHOD;Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface TagListener {/*** 订阅的tag*/int tag() default 0;/*** 请求方消息类型*/Class? messageClass() default Object.class;}TopicListener Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) public interface TopicListener {/*** 订阅的主题*/int topic() default 0; } 接口IHandler public interface IHandler {}抽象实现类BaseHandler public abstract class BaseHandler implements IHandler{} hello实现类 import com.loveprogrammer.base.network.command.BaseHandler; import com.loveprogrammer.base.network.command.HandlerFactory; import com.loveprogrammer.base.network.command.anotation.TagListener; import com.loveprogrammer.base.network.command.anotation.TopicListener; import com.loveprogrammer.command.server.ServerTag; import com.loveprogrammer.command.server.ServerTopic; import io.netty.channel.Channel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component;/*** ClassName HelloHandler* Description 测试handler* Author admin* Date 2024/2/5 15:49* Version 1.0*/ Component TopicListener(topic ServerTopic.TOPIC_HELLO) public class HelloHandler extends BaseHandler {public static final Logger log LoggerFactory.getLogger(HelloHandler.class);TagListener(tag ServerTag.TAG_HELLO_HI,messageClass String.class)public void sayHi(Channel channel, String msg){log.info(say hi);} }创建监听器工厂 HandlerFactory import com.loveprogrammer.base.network.command.anotation.TopicListener; import org.reflections.Reflections; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;import java.util.HashMap; import java.util.Map; import java.util.Set;/*** ClassName HandlerFactory* Description 监听器工厂* Author admin* Date 2024/2/5 11:21* Version 1.0*/ Component public class HandlerFactory implements CommandLineRunner {public static final Logger log LoggerFactory.getLogger(HandlerFactory.class);public MapInteger, Class handlerMap new HashMap();Overridepublic void run(String... args) throws Exception {// 找到所有实现类Reflections reflections new Reflections(com.loveprogrammer.base.network.command.handler);// 获取在指定包扫描的目录所有的实现类SetClass? extends BaseHandler classes reflections.getSubTypesOf(BaseHandler.class);for (Class? extends IHandler aClass : classes) {try {TopicListener listeners aClass.getAnnotation(TopicListener.class);Integer topic listeners.topic();handlerMap.put(topic, aClass);log.info(初始化消息监听器成功 {},aClass.getName());} catch (Exception e) {log.error(初始化 aClass.getName() 消息监听器失败,e);}}} }启动server查看监听器是否初始化成功。 2024-02-05 16:09:33.860 INFO 14144 --- [ main] c.l.base.network.command.HandlerFactory : 初始化消息监听器成功 com.loveprogrammer.base.network.command.handler.HelloHandler (♥◠‿◠) springboot启动成功 ლ(´ڡლ) 上一篇从零开始手写mmo游戏从框架到爆炸五— 集成springboot-CSDN博客 全部源码详见 gitee : eternity-online: 多人在线mmo游戏 - Gitee.com 分支step-06
http://www.zqtcl.cn/news/356064/

相关文章:

  • 安徽网站建设电话编程一个最简单游戏代码
  • 西宁圆井模板我自己做的网站在线平面设计图
  • 浦口区网站建设技术指导做软件需要网站吗
  • 丹东有做公司网站的吗搜索引擎 wordpress
  • 做网站代理国内课程网站建设现状
  • 中国建设银行手机网站下载从零开始建设企业网站
  • 网站友情链接怎么弄seo平台
  • 建设网站一定要备案吗嘉兴做网站设计
  • 如何制作营销网站模板做外贸需要关注的网站有什么好处
  • 东莞勒流网站制作wordpress 自定义字段 查询
  • 温州网站开发风格做影视剧组演员垂直平台网站
  • c 网站开发培训怎么做网站的站点地图
  • html 网站模板简单网站制作北京海淀
  • 大庆做网站找谁珠海网站搭建
  • 网站建设方面的外文宿迁房产网找房
  • 运营 网站遵义网站开发制作公司
  • 动力论坛源码网站后台地址是什么网站上微信支付功能
  • 网站需求分析模板深圳3d制作
  • 宿迁网站建设推广公司wordpress忘记密码了
  • 成都双语网站开发flat wordpress
  • 大连做公司网站的公司网络营销的网站
  • 做网站 人工智能怎么做商业服务网站
  • 自助建站公司四平市住房和城乡建设部网站
  • 淄博网站seo价格世界新闻最新消息
  • 网站开发 毕业答辩pptwordpress qq邮箱订阅
  • 国家icp备案网站群辉域名登录wordpress
  • 仙居住房和城乡建设规划局网站可以做思维导图的网站
  • 企业网站建设费怎么入账石家庄定制网站建设服务
  • 遂宁建设网站如何搭建微信公众号平台
  • 咖啡网站源码公司网站手机版