`

“异构信息的聚合”我的实现方法

阅读更多

有时候,我们需要将一些不同类型、结构的信息聚合在一起,提供给用户。

 

举例:QQ空间中的好友动态,将日志、说说、签名档、相册相片等信息聚合在一起向用户展示。类似还有微博、轻博客等。谁叫我是一只菜鸟,因此不知道具体实现方案。如果您知道,请鄙视我吧,鄙视完后请告诉我方法,谢谢。

 

问题:项目中有一空间应用中需要类似好友动态功能。主题类型由两部分组成,一是日志、说说、相片相册,其二是创建、评论、回复,于是这两种主题类型的组合成的主题角色有:日志创建、日志评论、日志评论的回复、说说创建、说说评论、说说评论的回复、相册相片创建、相册相片评论、相册评论的回复。这些信息都可能需要按时间先后顺序聚合显示。

 

网络搜索问题解决方案一:通过log来实现。记录每一个用户的每一个功能点操作,写入log,展示时则显示相关好友的log,按时间先后排序。方案二:直接查询功能表(日志、相册等),再在程式中处理。总结分析:方案一,例如在日志创建、修改过程中,会将所有的信息均记录在log中,而用户其实感兴趣的是最终修改后的效果,另外,长长的log记录,最后还得通过水平分表等方案去解决单表记录过多、查询效率等问题。方案二未给出具体实施方案,如果程式中只作简单实现处理,未作特别设计,可维护性和扩展性差。

 

在作选择时,因希望提供实时信息,故将网络方案一排除。好吧,我承认这个借口有些勉强。总之是觉得它不爽就是了,故而有下文。

 

我的选择一:单独区分各功能点的好友动态。即:将日志、相册、评论、回复等动态区分开来,单独查询,没什么需要特殊说明的。在应用中实现了部分功能,但最终选择放弃,原因很简单,这实际上已经没有了所谓的信息聚合了。

 

我的选择二:采用网络方案二。并最终完成。当然是通过一些所谓特别的设计,否则就没下文了。

 

有了选择,但我可不想把一堆乱糟糟的查询和重新排序之类的代码堆积在一起。我需要的效果是:在查询时,像我的选择一中那样,各自查询,然后以统一的方式进行聚合,然后再将聚合的内容以各自的方式显示。

 

各自查询统一聚合,这让我想起了观察者模式,但又有点不同。观察者模式中,如果被观察者发生了什么状况,则轮询告知它的每个观察者。现在,有点不同的是,需要被观察者收集每个观察者的情况,当然,可以在观察者的update方法中返回该信息,然后在被观察者中的notifyObservers方法中进行处理。但我发现,在spring这玩意儿中,一切似乎变得简单了。

 

具体方式:

每个需要进行聚合的主题角色在各自的ServiceImpl中各自进行的查询(当然通过Dao),这些ServiceImpl都实现同一个Service接口,然后将各自的ServiceImpl加入到同一个Action中的一个Service[]数组中,这个Action负责从Service[]中获取聚合的信息并对信息进行重新排序。总体思路就是这样。在信息聚合时,需要一个统一的VO(三个属性:Object objectModel主题角色,String actionName可理解为需要显示的模板或页面路径,Date sortTime用于排序的时间,实质上是存在于objectModel中的其中一个属性),即在每个service中,对各自的主题角色进行封装,封装成VO列表,然后返回。

 在页面中,迭代显示VO,根据VO的actionName加载各自的模板或页面。

 

如果需要将一个新的主题角色加入到聚合列表,只需编写一个Service接口实现(在该实现中进行查询,然后将结果列表封装为VO列表,在spring配置文件中注入actionName的值),然后编写用于显示该主题角色的模板或页面,最后将Service的实现加入Action中的那个Service[]数组中。如下(InfoTalkDiscussServiceImpl即为该Service接口实现):

 

<bean name="infoTalkDiscussService" class="cn.com...service.impl.info.InfoTalkDiscussServiceImpl">
	<property name="talkDiscussDao" ref="talkDiscussDao"></property>
	<property name="actionName"><value>showInfoTalkDiscuss.jsp</value></property>
	</bean>

 

<bean name="infoAction" class="cn.com....action.InfoAction" scope="prototype">
	<property name="infoModelServices">
	   <list>
	     <ref bean="infoTalkDiscussService"/>
	     <ref bean="infoTalkDisReplyService"/>
	     <ref bean="infoDailyDiscussService"/>
	     <ref bean="infoDailyDisReplyService"/>
	   </list>
	</property>
	</bean>

 

效果图如下:



 

 

 

 

  • 大小: 62.5 KB
分享到:
评论

相关推荐

    论文研究-一种改进的多源异构告警聚合方案.pdf

    各类网络安全防御设备产生的大量冗余告警信息非常琐碎、误警率高,给告警的分析和理解造成较大困难。...实验结果表明,这种方法能高效减少异构告警信息的数量,得到精简的超告警数据,并实现了实时处理告警信息的能力。

    网络游戏-基于异构信息网络的推荐方法及装置[1].zip

    《网络游戏-基于异构信息网络的推荐方法及装置[1]》是一份深入探讨网络游戏推荐系统的专业资料。本文档主要围绕如何利用异构信息网络来优化游戏内的个性化推荐,从而提升用户体验和游戏活跃度。在当前竞争激烈的网络...

    通过频谱聚合在异构蜂窝网络中实现高可用性

    总体来看,本研究详细探讨了频谱聚合技术在异构蜂窝网络中提升高可用性的具体方法和面临的挑战,并提出了一种有效的解决策略。随着无线通信技术的不断进步,频谱聚合技术将在5G及未来的通信系统中扮演越来越重要的...

    空间信息云服务聚合平台架构设计与实现.pdf

    在分析与实现空间信息云服务聚合平台的过程中,涉及到云计算、服务聚合、GIS(地理信息系统)以及软件框架设计等多个IT领域知识。以下详细阐述了这一过程中的关键知识点。 首先,云服务和服务聚合是当前信息技术...

    基于数据挖掘的地理信息服务聚合研究.pdf

    它能从大量的地理信息数据中提取有价值的信息,并通过网络爬虫、行业信息空间定位等技术手段智能解析、注册与发布空间化的行业地理信息数据,实现行业数据与基础地理信息数据的服务聚合。 网络爬虫技术是数据挖掘的...

    网络游戏-异构蜂窝网络基于业务感知的站间频谱资源聚合方法.zip

    "网络游戏-异构蜂窝网络基于业务感知的站间频谱资源聚合方法"这一主题,旨在解决这个问题,通过智能的频谱资源聚合策略提升网络游戏的用户体验。 异构蜂窝网络的核心在于通过层次化的基站部署来提供更灵活的覆盖和...

    异构分布式嵌入式系统的优化设计方法.pdf

    本文提出了一种针对异构分布式嵌入式系统的优化设计方法,该方法通过综合考虑通信代价、能耗、硬件资源和时间等系统属性约束,提出了系统任务划分的最优策略。 在此优化设计方法中,任务的合理分配是通过以下三步来...

    网络游戏-用于异构网络的移动终端调度多载波聚合方法及系统.zip

    《网络游戏-用于异构网络的移动终端调度多载波聚合方法及系统》是针对现代通信技术在网络游戏领域应用的一项重要研究。多载波聚合(Multi-Carrier Aggregation,MCA)是4G和5G网络中的关键技术,它通过合并多个载波...

    一种可证安全的异构聚合签密方案

    为了解决这一问题,本研究提出了一种新的异构聚合签密方案,它不仅支持单个消息的签密验证,还能够实现多个消息的聚合验证。这意味着在验证阶段,所需执行的双线性对操作数量是固定的,而不依赖于要签密的消息数量。...

    基于联邦学习的多源异构数据融合算法.docx

    通过模型参数的聚合,可以在保护数据隐私的同时,实现多源信息的共享。 #### 三、算法流程与实现 1. **数据预处理**:对来自不同边缘设备的多源异构数据进行预处理,包括但不限于数据清洗、标准化等步骤,确保数据...

    融合粗糙集与GRA的异构信息多准则三支推荐及其在医疗推荐中的应用.pdf

    《融合粗糙集与GRA的异构信息多准则三支推荐及其在医疗推荐中的应用》这篇论文探讨了在医疗推荐系统中如何处理数据的多源异构性和多准则问题。作者们,包括张萌、孙秉珍、王婷、楚晓丽和同思蓉,提出了一种创新的...

    面向异构数据库集成的语义导航技术研究

    在面对企业信息化建设中...这种技术的提出,不仅填补了传统异构数据库集成方法在语义表达和决策支持方面的空白,也为信息集成和数据共享带来了新的思路和方法。随着信息技术的不断发展,这类技术的应用前景将更加广阔。

    电子功用-含咔唑基的不对称光致变色二芳烯单体或聚合物及其电化学聚合制备方法

    本文将详细探讨含咔唑基的不对称光致变色二芳烯单体或聚合物在电子功能材料领域的应用,以及它们的电化学聚合制备方法。这些化合物因其独特的光物理性质,尤其是在光响应性和电荷传输方面的能力,被广泛研究并应用于...

    异构数据的同步——kettle

    标题中的“异构数据的同步——kettle”指的是在不同数据源之间进行数据迁移和集成的过程,而Kettle是一款强大的...通过学习和应用Kettle,IT专业人士能有效地解决异构环境下的数据集成问题,实现数据的统一管理和分析。

    载波聚合详解

    载波聚合技术详解 载波聚合(Carrier Aggregation,CA)是一种关键技术,旨在提高 LTE-A 网络的峰值...同时,载波聚合也可以帮助运营商实现LTE 向 LTE-A 的平滑升级,降低建网成本,并保持与 LTE 系统的良好兼容性。

    LTE-A载波聚合.pdf

    利用这一技术,系统能够实现高达100MHz的传输带宽,这一过程涉及将最多五个LTE载波聚合在一起,每个载波也被称为组件载波(Component Carriers,简称CCs)。 在移动通信技术中,LTE-A的载波聚合可以分为两种类型:...

    可实现隐私保护的多接收者异构聚合签密方案

    ### 可实现隐私保护的多接收者异构聚合签密方案 #### 摘要解析与背景介绍 本文提出了一种新型的异构签密方案,该方案旨在解决异构密码系统中的安全通信与隐私保护问题。具体而言,它允许在无证书密码系统和基于...

    空间信息栅格体系与服务聚合技术

    通过SIG的建设和应用,不仅能够有效管理和利用海量空间信息资源,还能通过服务聚合和动态服务选择等技术手段,实现空间信息的深度整合和高效利用。这不仅推动了空间信息技术的发展,也为地质调查等领域的科学研究和...

    LTE后续演进中基于频谱聚合的协同通信

    在LTE后续演进的过程中,频谱聚合的发展经历了从系统内部的连续载波聚合到跨系统、跨协议的异构频谱聚合的转变。早在第二代(2G)和第三代(3G)移动通信系统中,诸如TD-SCDMA和高通推出的DMMX、HMMX等技术,就已经...

Global site tag (gtag.js) - Google Analytics