论坛首页 Java企业应用论坛

LightURL——打造零配置的Struts2开发方式

浏览 40818 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-09-27  
前半部分的那几种基本匹配觉得还不错,后面的感觉并没有减少配置数,就像kjj说的
引用

配置从xml分散到源文件中了

还有几个问题,下面这个例子是不是有点错误啊?
引用


com.demo2do.lighturl.action.user.View ---> http://host:port/app/user/3456
com.demo2do.lighturl.action.blog.View ---> http://host:port/app/user/1113


下面这个代码,怎么感觉不像Java代码呢,  
@Override 
@Action("/all/search-user")
能编译通过吗?还是要装了插件才能通过? 
    /* (non-Javadoc)  
     * @see com.opensymphony.xwork2.ActionSupport#execute()  
     */  
    @Override  
    @Action("/all/search-user")   
    public String execute() throws Exception {   
        return super.execute();   
    }   
0 请登录后投票
   发表时间:2008-09-27  
zhudp.cn 写道
前半部分的那几种基本匹配觉得还不错,后面的感觉并没有减少配置数,就像kjj说的
引用

配置从xml分散到源文件中了

还有几个问题,下面这个例子是不是有点错误啊?
引用


com.demo2do.lighturl.action.user.View ---> http://host:port/app/user/3456
com.demo2do.lighturl.action.blog.View ---> http://host:port/app/user/1113


下面这个代码,怎么感觉不像Java代码呢,  
@Override 
@Action("/all/search-user")
能编译通过吗?还是要装了插件才能通过? 
    /* (non-Javadoc)  
     * @see com.opensymphony.xwork2.ActionSupport#execute()  
     */  
    @Override  
    @Action("/all/search-user")   
    public String execute() throws Exception {   
        return super.execute();   
    }   


这是Annotation,如何会编译不过?

com.demo2do.lighturl.action.blog.View ---> http://host:port/app/user/1113 写错了,正确的应该对应:
com.demo2do.lighturl.action.blog.View ---> http://host:port/app/blog/1113


0 请登录后投票
   发表时间:2008-09-27  
  感觉不错,省去了xml文件的配置,方便、简单许多!
  但是我有一个问题请教?
假如到后面要做些配置的更改,那岂不是又要重新编译类,如果是写在xml文件里的话,是否比写在类里更方便呢?
1 请登录后投票
   发表时间:2008-09-28  
h521999 写道
  感觉不错,省去了xml文件的配置,方便、简单许多!
  但是我有一个问题请教?
假如到后面要做些配置的更改,那岂不是又要重新编译类,如果是写在xml文件里的话,是否比写在类里更方便呢?


不要被那些所谓的修改配置不用编译源文件的假象骗了。

目前的情况下,绝大多数的系统配置,是在系统启动的时候load到内存中,在运行过程中不再做修改。struts虽然有reload的选项,但是在生产环境中,我们绝不可能采用这种选项。那么配置写在xml和写在源文件中有什么本质区别呢?我认为唯一的区别就在于配置是否需要分离关注点。至于是否重新编译,并不是问题的关键。

其实这个帖子的重点并不在于省去什么配置,或者把配置挪了个位置,而在于我们对url的正确规划和设计。举例来说,就在我回帖的时候,浏览器的url地址是这样:
http://www.iteye.com/forums/39/topics/242838/posts/682362/quote

至今为止,我还没有见到一个Java的Framework可以做到支持上面这样的表述完整而清晰的url,这可能是rails占有其很大优势的地方。所以我一直试图把url的正确规划和设计引入到Java中来。LightURL就是为了实现这一点。

所以希望大家不要仅仅把关注点集中在配置多少、配置放在什么地方来考虑问题,而把更多的关注点放在你如何来安排你的表示层url和你的Action代码上去。
0 请登录后投票
   发表时间:2008-09-28  
小日本一直看不惯的就是“配置”
叫的口号也一直是“简化配置”
0 请登录后投票
   发表时间:2008-09-28  
很棒的尝试。不过何不参考Rails的REST URL机制进行URL规则的设计呢?
0 请登录后投票
   发表时间:2008-09-28  
robbin 写道
很棒的尝试。不过何不参考Rails的REST URL机制进行URL规则的设计呢?


之前是这么想的,不过又不想限制得太死,所以暂时就采用了annotation的方式,允许类Url模板的形式出现。

我想下一个版本可能会考虑与Rails的RESTFUL URL机制一致。
0 请登录后投票
   发表时间:2008-09-28  
struts2.1.2已经有这个功能了
0 请登录后投票
   发表时间:2008-09-29  
tywo45 写道
struts2.1.2已经有这个功能了


struts2.1.2只是增加了annotation功能,但是不支持类似url template和某些特殊的url映射。

前几天有一个朋友向我指出LightURL的一个问题,这也可能是很多CoC存在的问题。在使用xml配置的年代,需要根据URL来找一个Action相对比较方便,因为只要在一个文件中进行查找就好了。但是使用CoC之后,并没有一个具体的文件来记录这些对应关系,所以想查找这样的对应关系非常的困难。
0 请登录后投票
   发表时间:2008-09-29  
downpour 写道
tywo45 写道
struts2.1.2已经有这个功能了


struts2.1.2只是增加了annotation功能,但是不支持类似url template和某些特殊的url映射。

前几天有一个朋友向我指出LightURL的一个问题,这也可能是很多CoC存在的问题。在使用xml配置的年代,需要根据URL来找一个Action相对比较方便,因为只要在一个文件中进行查找就好了。但是使用CoC之后,并没有一个具体的文件来记录这些对应关系,所以想查找这样的对应关系非常的困难。


Rails的routes.rb就是描述URL映射的,rails也带了rake,一个命令就可以打印出来整个web应用的所有URL对应关系,所以查找不是问题。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics