http://www.javayou.com (收藏,设为首页)
当你不能再拥有时,你唯一能做的,就是让自己不要忘记 (手机请访问 http://3g.dlog.cn/javayou)

DLOG4J 重构计划

2005年1月13日(Thursday) 09点21分 作者: 本站原创 天气: 心情: 非常差

经过半年多的开发完善,DLOG4J经历了从1.0到现在最新的1.4.2版本,之间发生了很多的变化,这些变化集中在功能的扩充以及所发现BUG的处理上。但是最近在继续开发的过程中发现每走一步非常的难,想加个简单的功能可能涉及到需要修改的地方太多,例如本站的论坛就是一个非常不漂亮的例子,因为完全可以设置一个特殊的日记分类来处理,而无需独立程序、独立的数据库表。等等诸多这样的限制使我下定决心对DLOG4J来一次大手术。

这次重构侧重的部分在于对底层对象的访问接口进行统一,改掉原来可能在Action、Tag、JSP以及DAO类中都可以看到hibernate代码的不好做法,通过一个统一的类来封装底层对象的访问,同时进行权限的控制。

总的一个原则就是让代码更加简单、清晰化,同时也会加入一些新的功能,例如更多类型的日记分类,多人发表的审批制度以及考虑升级现有的可视化编辑器到htmlArea 3.0版本等等。

技术方面将引入velocity模板技术来负责显示一些页面,目的不在于它有多好,算是一个试验同时也给开发者一些可参照的例子。暂时还不考虑使用JSP 2.0规范来开发,因为目前尚有不少正在使用的服务器还不支持JSP 2.0规范。

目前重构已经在进行中,因为涉及到底层结构性的改造,例如数据库结构调整(主要是废弃一些无用字段),代码结构调整等,因此下一个版本的版本号将直接是2.0。

标签: DLOG4J 
评论者: 小红帽 2005-1-13 09:26 (Thursday)
支持
评论者: caoliwei 2005-1-13 09:39 (Thursday)
评论者: williams 2005-1-13 14:47 (Thursday)
太期待了
评论者: 刘冬 2005-1-13 17:56 (Thursday)
重构期间为了不影响开发,暂时将几位开发者的CVS访问权限关闭,重构完毕随即打开。
评论者: aeonsun 2005-1-13 18:00 (Thursday)
收到,呵呵... 最近也会一直忙于一个项目,连blog都没时间更新了,哎,惨啊,还经常没时间吃饭,倒(不是没时间,呵呵,更多情况是没钱)
评论者: crabhero 2005-1-14 00:01 (Friday)
对于新版本,我想整体结构搭建好了后,大家还会有更多建议,希望能尽快出来
评论者: handsomealex 2005-1-14 08:06 (Friday)

这是htmlarea不好的地方,看看

评论者: 刘冬 2005-1-14 09:04 (Friday)

是的,使用可视化编辑器就要忍受一些乱七八糟的信息捣乱页面。

评论者: 刘冬 2005-1-14 09:21 (Friday)

经过昨晚深究,除了两个页面html_layout.jsp,wml_layout.jsp外,其他所有页面决定都采用velocity编写,而且也是可行的。这两个页面不动是为了沿用原有的布局处理机制。我说了,这是重构,不是重写,因此很多好的东西还是会保留下来。

另外页面元素的样式也会做一下统一处理,在这方面上我有一大堆思想,可是因为那不是俺熟悉的东西所以实现起来是那么困难。

评论者: 刘冬 2005-1-14 10:00 (Friday)

有点要命的是在velocity页面中引入其他的vm页面只能用绝对路径,例如

#parse("/WEB-INF/jsp/pages/scroll_tip.vm")

这就有点麻烦,因为我前面的路径/WEB-INF/jsp是可变的。

评论者: Artkai 2005-1-14 11:03 (Friday)

呵呵,可以从你的servlet里得到/WEB-INF/jsp的实际值,不过这样好像麻烦了点,每次都要获取一下。。。。

嘻嘻,一家之言^_^

评论者: handsomealex 2005-1-14 14:08 (Friday)

是的,使用可视化编辑器就要忍受一些乱七八糟的信息捣乱页面。

是你没考虑到吧,写个class转一下吧

 

评论者: 小雪 2005-1-14 18:59 (Friday)

to刘冬:

你可以说说你的理想让大家思考思考嘛。看有没有有识之士去实现。

群众的力量是无穷的。

评论者: 刘冬 2005-1-14 23:46 (Friday)
群众力量大,可是我应付不来啊!重构只是为了让代码清晰些
评论者: fzg 2005-1-15 20:55 (Saturday)

问两个不明白的问题,希望给予答复:

1、为什么JSP页面放到WEN-INF下面?

2、为什么有的跳转是JSPE而不是JSP

评论者: 刘冬 2005-1-16 12:08 (Sunday)

放在WEB-INF目录可以保证JSP不被直接引用,而通过JSPE这个Servlet来统一协调。

过几天将会发表一篇DLOG4J的布局处理方式会重点介绍。

评论者: Artkai 2005-1-16 14:02 (Sunday)
东哥把dlog4j的设计思想较详细的给大伙说说吧??
评论者: fzg 2005-1-16 17:43 (Sunday)
1 、DLOG4J的布局处理方式会重点介绍。请尽快拿出来让我们学习学习把,我想这样一个好的项目,要真正了解,吸取精华,知道布局的一些东西是必须的 2、这个项目的JSP是用ECLIPSE+lomboz做的吗,请告知
评论者: 刘冬 2005-1-16 17:56 (Sunday)
是啊,不过用lomboz仅仅是用它的JSP的语法着色而已
评论者: re 2005-3-14 10:41 (Monday)
用velocity并不需要写#parse("/WEB-INF/jsp/pages/scroll_tip.vm")这样的绝对路径,因为你可以设置资源加载基路径的,比如我在spring中的设置:
    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="prefix"><value>/</value></property>
        <property name="suffix"><value>.html</value></property>
        <property name="contentType"><value>text/html;charset=UTF-8</value></property>
        <property name="exposeSpringMacroHelpers"><value>true</value></property>
        <property name="exposeSessionAttributes"><value>true</value></property>
    </bean>
    <bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<!-- 下面这一行很重要 -->
        <property name="resourceLoaderPath"><value>/WEB-INF/views</value></property>
        <property name="configLocation"><value>/WEB-INF/velocity.properties</value></property>
    </bean>

评论者: 刘冬 2005-3-14 11:08 (Monday)

那如果我没用Spring的时候怎么办呢?

评论者: re 2005-3-15 02:11 (Tuesday)
runtime.log.logsystem.class = org.apache.velocity.runtime.log.AvalonLogSystem,org.apache.velocity.runtime.log.SimpleLog4JLogSystem

runtime.log = yatone.log

runtime.log.error.stacktrace = false
runtime.log.warn.stacktrace = false
runtime.log.info.stacktrace = false
runtime.log.invalid.reference = true

input.encoding=UTF-8
output.encoding=UTF-8
#default.contentType="text/html; charset=UTF-8"

directive.foreach.counter.name = velocityCount
directive.foreach.counter.initial.value = 1

directive.include.output.errormsg.start = <!-- include error :
directive.include.output.errormsg.end   =  see error log -->

directive.parse.max.depth = 3

resource.loader = file

file.resource.loader.description = Velocity File Resource Loader
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
#注意下面这一行,我在这里注释掉了,是因为我在spring的配置里面已经设置过了。
当你单纯使用veloctiy的时候,可以使用下面这个选项来设置(我没有用过),据说是要写绝对路径的,不然它就是相对于classpath的。
比如:file.resource.loader.path=c:/tomcat5.5/webapps/myapp/WEB-INF/views
你可以去试试,我没有试过。
#file.resource.loader.path = ${webapp.root}/WEB-INF/views
file.resource.loader.cache = false
file.resource.loader.modificationCheckInterval = 2

姓名: 
邮箱:  {可选}
网址:  {可选} 此评论只有我和写日记的人查阅
校验码: ... <我看不清楚>
网记为您提供手机和互联网同步的个人主页,带给你不一样的体验