|
做过很多项目,基本上是所谓的"事务脚本",没有什么域模型。自从知道了jdon网站后,感觉像进了宝库一般。但看了很多banq的帖子,说实话,很多看不懂。可能是领域设计方面的知识欠缺。 下载了jdon的资料,里面有个案例:Account中一个计算该用户发帖总数字段messageCount。banq大哥给出的方案是CQRS,涉及的类有:UserModel,UserDomainEvents,..[...]
开始这个项目的目的是找出我的那个小巧 REST ful框架的不合理之处,准备深入实践运用 REST ,DDD,DCI,CQRS,NOSQL,EDA等思想。 探索 DCI 是否可以植入框架,DDD中的领域模型是否可以直接暴露为资源Resource,实践非贫血模型,分布式计算。 项目会在基本的功能完备后开源出来,部分代码将直接使用当前的 JiveJdon 。 论坛UI基于Jforum..[...]
根据 JiveJdon -4.0中 JiveJdon \doc\install_cn.txt 阶段成功 安装经验 安装环境: JDK 6.0 + jboss-4.2.3.GA-jdk6 + MySQL 5 1. 先配置好 jdk6,再下载 JiveJdon -4.0 源码 下载 jboss-4.2.3.GA-jdk6 下载地址 http://www.jboss.org/..[...]
都说Java领域注重设计,感觉这才是 OO 的圣地,特别是Jdon 。习惯了.Net的直来直往,突然有一天觉得写程序索然无味了,写来写去都一个模样。想象中的 OO ,找不到影子。只不过是借 OO 的躯壳包装了面向过程代码而已。我要的扩展没有,需求的变更只有无尽的刨代码。所以至今 OO 功力不见长。 决定看看 JiveJdon ,Java的开发环境,以及一些配置都不是很熟悉的情..[...]
最近我和 OO jdon讨论给帖子加上浏览阅读次数这个功能,起初我们并没有从职责角度来考虑阅读次数这个功能,就简单地在Service中获得Thread方法时,添加一些代码,用来统计次数。 因为我们这时重点是如何用Domain Events来实现阅读次数持久化问题,也就是说,阅读次数并不是每次阅读就保存持久化一次,而是增加内存中计数,持久化保存是每隔60分钟保存,阅读次数这个数据并不是一种状态..[...]
我打算开发一个社区,打算用jdbc做,现在有个问题,就是在查询对象list的时候,怎么把这个list中的对象组装成完整的领域对象,查出的list只有id, 我现在的想法是在dao查出来的时候,然后去 缓存 中遍历,找到了就加载 缓存 的,没找到就调用dao查出单个对象 第二种就是dao查出的是个代理对象,不过目前感觉有点麻烦。 我看jf中好像是框架给自动完成的,但是我这项目估计不用jf,..[...]
最近研究 论坛的代码,说一下我的理解,以及疑问,就以MessageListAction 为入口 MessageListAction 中有个方法 getPageIterator是通过forumMessageQueryService的getMessages(new Long(threadId), start, count) 方法得到一个PageIterator的 ..[...]
分解 JiveJdon 3部署在tomcat6.0,启动项目是报如下异常: 严重: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/jivejdon3,J2EEApplication=none,J2EEServer=none 2009-12-21 16:57:15 org.apache.cata..[...]
按照说明文档部署了,但是部署后在打开页面进行注册操作时提示:“对不起,你的操作导致系统错误” 异常信息超过发帖长度限制,详见附件。 环境 JDK1.6_13 JBOSS 4.2.3 attachment: stack.txt [...]
小弟不才,JiveJdon中MessageBuilder.java中的以下代码看不太明白,希望大家指点迷津。 public void asyncGetAccount(final ForumMessage forumMessage) throws Exception { try { logger.debug(" embed getAccount "); // DomainMessa..[...]
Domain Events领域事件定义见这里 Domain Events – 救世主 ,领域事件可以实现领域业务模型与技术架构之间的松耦合,达到实现类似 DCI架构 同样效果。 DCI是通过设定一个场景对象,让与这个场景有关的功能在场景中混合实现,注入参与者角色和参与模型;而领域事件则是通过松散的事件达到场景目标,不同场景对应不同领域事件。下面以 JiveJdon 实例说明领域事件应用。 ..[...]
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.re..[...]
我已经是按照目录安装了4,5次,JDK1.6+JIVEJDON3.6+MYSQL5.0 每次都是报这样的错误,应用也无法访问,请高人指教一下,到底是哪里出了问题 2009-09-23 11:37:30,375 ERROR [org.apache.commons.digester.Digester] (main) Begin event threw exception java.lang.refl..[...]
环境:JDK 1.6 + jboss-5.1.0.GA + MySQL5.1.33;jdbc驱动:mysql-connector-java-5.1.7-bin.jar 启动正常,访问时抛异常: 21:03:18,237 WARN [JBossManagedConnectionPool] Throwable while attempting to get a new connection: nul..[...]
jivedon中获取对象是在dao的装饰器中获取的,ForumDaoCache代码如下: Forum forum = (Forum) containerUtil.getModelFromCache(forumId, Forum.class); if (forum == null){ forum = super.getForum(forumId..[...]
MessageDaoDecorator类中的getMessageCore(Long messageId)方法里是先在 缓存 中找,如果没找到就到数据库中去取,然后把从数据库中取出数据组成的对象ForumMessage在放入内存中,但是此时的这个ForumMessage中包含的ForumThread Forum等对象只是包涵ID的空对象,完整对象需要前台再行处理,假如在这个ForumMessag..[...]
比如message中有account,这个message和account都存在 缓存 中,如果这个account修改了他的资料,然后又打开那个message,里面的account就还是老的数据啊,只有等到这个message也被清除出 缓存 ,数据才正常,这样不是就不能及时更新了吗[...]
非常佩服banq才会一直关注jdon。jdf的设计一直是我的心中对banq崇拜的原因。 水平有限 说说 JiveJdon 的一些看法 1.Account类因为加入了Reward PostIP等,我认为它应该有一个抽象类,因为这个account应该是accountEx 2.再来说说接口:public class Model implements ModelIF, MessageRendering..[...]
个人认为,ForumThread,AccountProfile应该是ValueObject 值对象特征: 1.ValueObject是通过属性来比较的 2.它没有Identity 3.一创建即是最终状态 4.如果要修改ValueObject直接创建一个新的,而不是在原对象进行修改 5.不需要状态同步. jiveJdon中ForumThread不可能独立存在,它必须依赖rootMess..[...]
这几天看了一下代码,有几处不是很清楚,请高手们指教一下: 问题1:AcountServiceImp.java中: /** * init the account */ public Account initAccount(EventModel em) { return new Account(); } 函数中参数没用到,不知道这里引进这个参数..[...]
大家好! 我在jboss-5.0.1.GA+mysql-5.0.41+JDK1.6下安装了 JiveJdon _3.6.完全是按照install_cn.txt去安装的.安装好后,启动Jboss,启动过程中,没有错误.但是打开http://localhost:8080/jivejdon/的时候,就报如下的错误: .... Caused by: java.lang.NoSuchMethodExce..[...]
OOJDON的“Tomcat环境 JiveJdon 原始版”(jivejdon3.0),运行在Tomcat6上,我们的环境及应用大部分是在Tomcat5.5.26环境下,经过修改配置文件,目前已经能正常运行(JDK1.6)。配置方法如下: 1. copy lib-additional\*.jar to ${catalina.home}\common\lib files list : ..[...]
今天看到这篇 http://www.infoq.com/cn/articles/ddd-in-practice 文章 英文原文: http://www.infoq.com/articles/ddd-in-practice 源码:http://www.infoq.com/resource/articles/ddd-in-practice/zh/resources/LoanAppDomainDr..[...]
大家都来说说 JiveJdon 和 Jdonframework 中你想加入的功能 这是banq的todolist todo 列表: 顶; 一个IP只能顶一次。 会员等级积分制度 收藏功能,每个用户能够将自己感兴趣的帖子收藏,形成自己的知识库。 博客功能 每个用户发表的主题贴在博客页面显示,博客首页可以自定义页面。 管理界面:精华贴 CRUD 会员头像 已经完成 1. RS..[...]
jivejdon3.5和Tomcat 5.5, jboss 4.05GA,jdk 1.5 但是出现这样的log错误: 2009-01-08 23:52:09,812 DEBUG [org.jboss.mq.pm.jdbc2.PersistenceManager] Could not create table with SQL: CREATE CACHED TABLE JMS_MESSAGES ( ..[...]
2009年新年来到,祝大家新年好,为感谢几年来各位道友对Jdon.com的厚爱和支持,新年伊始,J道推出用户名开头的个人域名XXX.jdon.com,凡是在Jdon社区注册过的用户都会有一个用户名带头的个人域名,比如我的个人博客域名就是: http://banq.jdon.com/ 。 Jdon.com的个人博客有些特殊,就是和论坛紧密结合在一起,凡是在论坛发表过的主题贴都会收录在个人博客中,在..[...]
请教一下banq几个问题: (1):jivejdon3.5做得很好,我想问下如果我把这个软件做成自己的商业系统的话,会不会有版权方面的问题,需要不需要交版权费或者提供后续代码? (2):现在有没有以 JiveJdon 为基础的网站案例?能不能介绍一个看看?谢谢。 [...]
JF的LoginServlet.logout方法 private void logout(HttpServletRequest request, HttpServletResponse response){ Debug.logVerbose( "[JdonFramework]logout, session.invalidate " , module); ..[...]
受wordpress的widget启发,所有用wordpress写的不同网站博客如果对同一个话题讨论,这些讨论可以串联在一起,好像是同一个网站上的讨论。 JiveJdon能不能做成这样一个标准平台,对同一个标签主题讨论的不同网站上内容都可以串联在一起?这样做比搜索引擎意义更大,因为更具有聚合性,可以让浏览者对一个主题一次性完全研究学习讨论完整,听取各种不同声音,这样,我在jdon.com可以尽情..[...]
简单描述: accountServie,adminService....很多小的service接口,再建立一个facadeService,把这些小的service包含进来,这样facadeService就可以看做整个项目的一个方法库,项目中所有的方法都在这里存在。 每次调用其中的一个方法,facadeService会不会被创建一次,还是系统启动后,只创建一次facadeService,每次用时..[...]
==由于ForumThread中ForumMessage和ForumMessage中ForumThread互相包含,怎样确保它们互相包含的==对象都是从 缓存 里获得同一个实例呢? ddd中都是建议从根开始找对象.如果互相包含会不会和 DDD 相冲突?[...]
已经下好jive3。0好几天了,一直在捉摸如何配置。下面把问题一起罗列下: 1. 我用的是oracle数据库,不知道该如何配置才能和oracle连接上。我的是9i,用了jive2.5版的sql导入进去。但是还是不能注册。 2. 我在tomcat6.0下 把文件放在wabapps中可以运行到页面也没有错误,但是用myeclipse导入war包的时候出现了很多问题,诸如classcaste..[...]
JdonFramework 5.5版本经过严格的并发性能重构和测试,解决了以往框架中可能存在的内存泄漏漏洞,使用ThreadLocal以及java.concurrent等JDK5.0以上新的并行功能,增强了并行计算能力。 5.5版本经过并发性能重构后,可支持严酷的并发访问压力,结合 JiveJdon 3.5测试表明:可支持10分钟内数万不同客户端发出的请求,测试样本见 JiveJdon ..[...]
Formthread表示帖子的根. 一般在开发论坛的时候,要查询根可以根据message 的parent is null就可以了. 这样可以省去formthread表. 但在 JiveJdon 中却有这样的表. 这是因为根据 DDD 分析得来,还是考虑到了并发问题,不要把操作过去集中在message表上呢?[...]
请教8个问题 1.我看了下jpetstore5源码,它里面只有一个action,然后通过反射来运行,大家都很佩服这种设计,但是现在这种设计怎么没有普及啊,大家还是提交到不同的action,jivejdon3也是采用的多action.为什么呢? 2.类ModelState中的这个属性embedded什么意思啊 3.initMessage这个方法是jdon自动加载的,要在配置文件中配置,但是 ..[...]
jivejdon里,当点击某个论坛下的某个主题时,程序链接的是一个html文件,文件名就是主题的threadid,路径是在/thread 下,但是没有看到有thread 路径啊,就更看不到html文件了,例如某个主题的链接如下: http://www.jdon.com/jivejdon/thread/34814.html 请问大侠:这个html文件在什么地方,如何生成的? [该贴被Arsenal于..[...]
多线程读取并修改一个资源时,我们过去通常使用synchronized同步锁,这个是有性能损失的,很多情况下:资源对象总是被大量并发读取,偶尔有一个线程进行修改,也就是说:以读为主,修改不是很频繁,那么我们在JDK5.0中用ReentrantReadWriteLock就获得比synchronized更高并发性能,高并发性能是我使用JDK5.0主要目的,而不是annotation和泛型等设计优点。 ..[...]
没有查过“代码冗余”的准确定义,姑且理解为多余的代码吧! jivejdon的学习我已经持续很久了,获益良多,希望更多的道友来一起学习,一起进步。 不过最近一直有一个疑惑,jivejdon代码中关于权限似乎存在一些多余代码,权限是一个切面,我们的服务组件比如ForumMessageShell完全可以权限不可知,但是 JiveJdon 中关于权限似乎还是渗入到了业务组件,有了JAAS的url拦截,..[...]
jivejdon我已经成功让它跑在了tomcat6.0里面,方法是去掉原来的 事务 代码,然后自己写一个JAAS,正准备打包发出来共享的时候,一个错误开始折腾我---------权限拦截器不起作用。后台日志清楚的告诉我容器没有理睬myaspect.xml文件,郁闷!! 于是我在案例testWeb里面尝试写一些拦截器放在myaspect.xml中,部署到tomcat中,不出所料容器没有注册这些..[...]
banq老师您好。今天看了下jivedon3.0源代码,对于站内消息的设计有以下疑惑,请老师解答,谢谢。 第一:关于ShortMessageRepository与ShortMessageFactory的职责问题。 我觉得ShortMessageFactory不应该ShortMessageDao关联,我觉得factory只负责创建新建的消息,以及要保存到草稿箱的消息,只需要保证消息的不变量得到满足,..[...]
最近学习banq老师的 JiveJdon 源代码,感觉源代码里注释写的少,学习起来有点费劲。希望读过 JiveJdon 源代码的道友把心得发一下,大家一起交流,一起学习 JiveJdon 源代码。 [...]
安装过程断断续续经历了半个星期,主要问题集中在注册登陆部分,以下是本人的一些心得体会希望对大家(如本人此类菜鸟 ;-) )有些帮助! 基本步骤看 install_cn 修改: 1、在mysql-ds.xml中加入数据源根标记<datasource> 2、合并数据源 , 去掉security部分 3、找到源码中web-inf、classes、com、jdon、jivejdon、dao、d..[...]
在MessageKernel类中,创建主题帖的方法如下: public void createTopicMessage(EventModel em) throws Exception{ logger.debug("enter createTopicMessage"); ForumMessage forumMessage = (ForumMessage)em.getMode..[...]
一个web application 中使用jDon 的框架,用了一个数据库的连接池。 现在想在相同的web application下增加一个到另一个数据库的连接池, 请问这能实现吗? 如果能的话,在我的代码里,应该怎样指定用哪个数据库连接呢? 谢谢![...]
都说学习java必读jive源代码,我最近也想读一读jive源代码,最近发现banq老师的jivedon是jive的升级版,是不是不需要读jive了,直接读jivedon就OK了,请各位赐教哈哈。 btw:jive的源代码哪里下载?请各位老师说一下呵呵。[...]
banq大哥你好!你说ForumThreadState是值对象,但是: 1.“值对象是不可变的,不要给它任何标识,避免实体的维护性,降低设计复杂性。我们不关心值对象是哪个实例。”,好像ForumThreadState是可变的,有set方法,而且每次回复后,都会重新去数据库统计一下。不过再细看代码,在refreshState的时候是new了一个ForumThreadState,就是说重新生成了新的..[...]
最近一直在学习 DDD ,贴子看了很我,吸收了很多来自不同人的精华,基本上知道 DDD 的核心在于领域,其他都基于领域的操作。按Banq老师的说法是分为实体、值对象和服务,其中服务可为分应用层与领域层,而领域层是可以再细分为领域服务和领域对象,领域服务依赖领域对象;应用层是主要处理业务逻辑的,领域层处理的就是核心领域对象啦。那么我们可不可以这样理解呢?领域对象一般是实体与值对象的集合,其中..[...]
|