`
gege_s
  • 浏览: 19018 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
文章列表
关于树形结构的博客,我总结了下面五篇,其实进行树的加载与展示有很多方案,我觉得我通过优雅的方式实现了,并且做到结点通用与业务扩展属性,针对树的装配做了大量的分析工作,尤其是在算法上力求简洁,当然这期间历经数次重构。   比较有意思的是我在重构中经历如下阶段:   1.结点 AbstractNode,树 AbstractTree,用到了模板方法,在抽象类里面组织好步骤,结点列表放在子类里实现。   2.在1中有一个问题就是造成类的膨胀因为针对每一个业务都会有不同的业务知识在里面,都要写一个新的子类来实   现AbstractNode中定义的抽象方法,还要有一个AbstractT ...
说下思路: 在图片存放的时候: 有些表存放图片的索引,可以在mysql中定义也可以在mongodb中定义,结构大致是这样的: 1.图片key:可以是自增主键,最好是uuid,或是其他的生成策略来保证它在唯一,即使在集群环境中也能保证。 2.mongodbName :指定图片是放在哪个库里面的 3.buckt_name:指定放在哪个桶里 4.mongodb_id 在存入到库里面的时候,返回的一个值 5.md5_code: 对存入的图片的进行md5加密,这用来过虑图片,临时想到的,因为在下载东西的时候有一些md5码,我想这是很高效的加密算法,而且对如再大的方件加密后也3 ...
     事情是这样的,我今天做了图片接口,接触到了现有图片的存放策略,觉得这里面有些东西值得好好想想。 从物理结构上说,现在的存放模型是这样的: 1.目前只有一个MongoDb,所有的图片都存放在这里面。 2.在这个MongoDb里只有两个桶:big,small分别用来存放大图和小图。 从下面几方面进行分析: 1.存放,很方便,但当图片数量和体积大到一定程度,会放不下,也很难配置集群,比如把一个桶里面的内容分配到好几个文件系统里面,这个可能做不到。 还有就是在存放的时候,因为没有根据业务进行划分,只是简单的大图小图的区分,在保存图片位置的时候,往往在mongodb ...
费话不多说 ,可以看threadlocal源码明白它是用来做什么的,要说的是在jdk5中它加入了在线程结束后自动移除线程上引用的对象的方法,这方便了使用它来编程的步骤,也增强程序的健壮性。     /** * 这是为配合一个同事要加入aop来记录调用*.service.*impl.save*(..)方法时 * 要传入当前是哪个用户在调用,用户是哪个部门的,返回的主键是什么。并把这 * 些信息保存到control表用于分组访问控制。 */ package com.ylsoft.power.web.intercept; /** * 当前线程操作员信息 */ ...
这里共定义了三种拦截器,用于日志记录·过滤未登录用户·验证访问权限·作业时间拦截器:   1.日志记录。 package com.xx.power.web.intercept; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache ...
我要分享的是我为华夏银行保证金系统做的一个权限管理模块,基于struts2拦截器来实现可配置的权限模型。   看下struts配置文件先:     <package name="accesslog" extends="base" abstract="true"> <interceptors> <interceptor name="accesslog" class="com.ylsoft.power.web.intercept.AccessLo ...
  也是关于树型结构的内容 ,就是数据库递归查询,我在项目中用的是oralce数据库 ,它提供了递归查询的功能, 像普通的查询一样,在网上了解了一下,发现很多数据库都提供了递归查询的实现,如mysql,db2,oralce等。   下面贴出来一个角色信息的hibernate配置文件来,里面用到了这种查询。     <?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernat ...
爽快些 一下把所有的内容都放上来吧   下面放的一段是我通过ajax获得json格式的字符串,并把它展示出来,因为格式的风格的限制这里只列出了二级和三级别结点。   上面json字符串的转换会通过另一篇博客与大家分享,是个appache的一个类,支持循环引用检测,使用数据结构中的栈来解决这个问题。   js展示代码如下:后面让同事加了一些点击后设置样式的功能,有点乱,不过重心还是在于用js递归所有结点;       function toURL(url,path,obj) { $(".left_zinav").removeClass("l ...
上面的两篇博客分析了树和结节各自的处理,下面给出一个查看树型结构的类,通过调用这个类可以看出相应的结点及子结点信息,显示方式经过简单的格式处理形成有层次和缩进的效果。   下面直接放代码:     package com.power.tool.tree.util; import com.ylsoft.power.tool.tree.node.Node; public class TreePrinter<T> { /** * * * * @param args */ public static void main(String ...
接着上面的一往篇,继续说树型结构的事。   上面一篇提到如何建立一个业务无关的结点,下面就要说一下树的组装。   设计思想是调用者通过TreeBuilder的构造方法加载所有结点,根据不同的需求通过TreeBuilder提供的方法得到相应的信息。 待树型结构被装配完成,通过拿到一个根结点就可以拿出整棵树的信息。   一点一点来吧:   --------------------------------------------   public class TreeBuilder<T> { private static Logger logger = Logge ...
  程序开发中经常会用到树型结构,如组织机构·菜单·角色(支持继承的角色)·分目录的参数管理。   下面是我的一段经历,来单位不久我被分配到一个客服平台开发的项目中,由一位‘资深’项目经理带着做,他已经有五到六年的工作经验   了,不过在后来的工作中发现,他这六年是ctrl+c,ctrl+v过来的。   切入正题,我负责的模块中有一个是知识库的建立与应用,它的需求是这样的,要有一个目录,目录里有子目录,共要求三级目录,目录下   面对应着的是一些业务知识点供客服人员查看。   之前我没有用过树型结构,在这个程序里他们有写好的树型结构的读取工具,我看了看,大致如下做法是在后台 ...
Global site tag (gtag.js) - Google Analytics