`
leeon
  • 浏览: 42357 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

打造0配置文件的SSH框架-1

    博客分类:
  • java
阅读更多

        xml配置文件于现在的J2EE开发中,几乎是不可能不接触到。从数据载体,到协议载体,到项目配置,现在甚至成了开发的一个输出物。以前写c的时候,提交一个.c文件就可以了,到后来写java,提交的是.java文件或者jsp文件。到如今如果用官方标准的J2EE实现方式来开发一个项目,jspjavabeansession bean会有一些xml配置文件,entity bean也会有一些xml配置文件,再如果使用Struts+Spring+hibernate的非官方J2EE实现框架,那就真的是有无数的xml配置文件要提交,无数xml的配置文件在项目里碍眼。要维护一个用如此框架建设的项目,就算只是需要修改一个功能点,我们也需要至少打开七八个文件,然后从一个java看到一个xml,再从一个xml看到一个java。最后好不容易找到需要修改的地方了,改掉起服务,发现没改对,傻眼了,原来配置文件配错了….哎,折腾吧。

    框架应该用到xml来做一些开发产出物的替代,但绝不能滥用。在我看来xml的优点是它容易修改,修改后不用编译。但缺点也在这里,不能编译我怎么知道改对没有,尽管现在有很多校验方式和IDE的支持,但这些都不如编译这个如此有效的避免低级错误的手段。倒是xml用作配置一些项目很基础的信息是蛮好的,比如web.xml。这些信息根据部署环境不同,可能会有一些调整,这些会调整的信息如果在xml中配置,然后再利用ant打包时根据不同的环境需要进行一定的修改,这样从开发到测试到发布的过程就显得相当和谐了。

    说了这么多xml的不好,再看看SSH框架中,每一个单元都会有大量xml的输出物。那么为了给SSH减肥,我定的目标是,除了struts.xmlspring最基本的配置数据库和事务的xmlhibernatehibernate.cfg.xml,其余统统去掉。我希望大家开发一组简单功能(比方一个对象的CURD)的输出物应该是若干JSP文件,一个action类文件,一个service类文件,若干域对象类文件,没有xml配置文件。这样虽然算不上真正的0 xml,毕竟整个项目中保留了三四个基本xml配置。我觉得真要全部去掉xml配置也太极端。

    目标定下来,那xml的替代物,当然是annotation。目前hibernateannotation的支持相当好,spring也有了自己的annotation项目,但限于使用jdk1.6struts2提出了zero configuration的概念,但做得却so so。我们先从hibernate说起吧。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics