java数据同步处理_[java数据库同步解决方案]系统间通讯实现数据信息实时同步解决方案...
java数据同步处理_[java数据库同步解决⽅案]系统间通讯实现
数据信息实时同步解决⽅案...
项⽬开发阶段遇到⼀个需求,描述⼤致就是同⼀个⽤户在A系统数据库保存的数据信息与在B系统数据库保存的数据信息要保持同步。当A系统⽤户修改了个⼈信息,A系统后台在将⽤户修改后的信息⼊库的同时也会向B系统发送消息,让B系统后台进⾏⾃动数据信息同步。
这个可以根据各企业各⾃的系统间通讯⽅式来灵活处理。这⾥我介绍我运⽤的处理⽅式,作为经验总结记录和分享。
马的成语故事深谙spring的实现原理:使⽤dom4j技术对xml⽂件进⾏解析读取扫描注解通过反射机制来进⾏对象的创建,于是解决上述需求的⽅案由此得到启发。对于我们实际系统来说,这就是⼀个⼩框架,扩展性⾮常好,后来者只需要专注业务逻辑的实现即可完成数据同步的需求。
下⾯先贴⽬录结构
防晒霜哪一款比较好呢
这⾥运⽤先缓存业务逻辑处理⽅法的策略,即在服务器启动的时候就将写好的业务逻辑处理⽅法缓存到内存中,通过监听到其他系统有发送同步消息时⾃动调⽤相应的处理⽅法来进⾏数据同步。
要缓存服务,需要⽤到注解和反射
360sd是什么下⾯贴上两个⾃定义注解:分别是类注解和⽅法注解
然后定义⼀个通⽤的业务处理类,通过这个类来保存注解类对象,然后运⽤反射机制来调⽤具体的业务逻辑处理⽅法
spring容器初始化时还需要做的另⼀件事——将带有注解的类和⽅法缓存在map中,key值就是⽅法上⾯的注解value值,key对应的value 就是带注解的对应的业务处理类对象实例
歇后语包公断案
然后在spring容器启动的时候调⽤上述类中的初始化⽅法和启动消息
消息启动时需要指定消息处理器,这个处理器实现了MessageHandler接⼝,⼀旦有消息从其他系统发过来,监听到消息到来就会调⽤messageReceived(Objectarg0)这个⽅法,参数即为接收到的消息
然后在这个类的messageReceived(Objectarg0)⽅法中再调⽤接收消息执⾏器将接收到的消息进⾏处理,解析消息内容得到⾥⾯⽤来标记具体业务逻辑处理⽅法的值,然后将该值与缓存在map中的key值⽐对,到对应的⽅法⽤反射来调⽤。
这个ServiceReceiveExecutor类会将消息中解析出来的报⽂body通过反射参数传到具体的业务逻辑处理类中,最后就是具体的业务逻辑处理类了,这个类或者⽅法可以按相同的⽅式进⾏任意扩展
最后还有⼀个容器销毁时释放缓存的白夜追凶小说结局
这样整个⼩框架就完毕了,使⽤时只需要在spring的配置⽂件中将SpringContextReceiveUtil这个类的bean配置好,在l中配置StartupListener这个就可以使⽤了。接收消息按UserInfoService类⽅法上⾯注解唯⼀标识来区分。后续还有其他消息要接收,直接按照这种注解⽅式在UserInfoService类中扩展或者另外新增类似UserInfoService类都可以。
汕尾美食

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。