`
青竹飘雪
  • 浏览: 9088 次
  • 性别: Icon_minigender_1
  • 来自: 襄阳
社区版块
存档分类
最新评论

Java自学系列:弄清项目各文件作用(初稿)

阅读更多
[size=large][/size]    自己不是科班出身,转行IT,自我感觉比本科的一些朋友都差,底子也薄弱,现在真是一片空白,连最简单的程序都不会,着实汗颜。不过既然决定学这一行就爱一行,从头开始,坚持到最后,无所遗憾。故开始叙写学习历程,一方面自勉,一方面与人交流学习。
    我也是使用eclipse软件,可是作为一个菜鸟,我觉得首先要弄清楚各个文件的功能作用。很遗憾,很多牛人以及有所基础的人都不怎么在意这个,觉得理所当然。但是对于我这个从零学起的人来说,这个也许是至关重要的,为了以后的朋友少走弯路,我特别将自己搜集的资料整理,以飨大家!
    在Eclipse中只要创建一个Dynamic Web Project,就可以根据创建向导创建出一个典型Java Web站点的目录结构。除非有特殊需要,在大多数情况下都没有必要修改这个目录结构,这也是Web容器的缺省目录结构,我们只要直接使用即可。一般的目录结构如下:

WebContent<WebRoot>                       (站点根目录,可以替换符合Tomcat)
     |---META-INF                           (META-INF文件夹)
     |       |---MANIFEST.MF            (MANIFEST.MF配置清单文件)
     |---WEB-INF                              (WEB-INF文件夹)
     |       |---web.xml                     (站点配置web.xml)
     |       |---lib                              (第三方库文件夹)
     |       |    |---*.jar                     (程序需要的jar包)
     |       |---classes                       (class文件目录)
     |            |---...*.class               (class文件)
     |---<userdir>                            (自定义的目录)
     |       |---*.jsp,*.js,*.css           (自定义的资源文件)
     |---<userfiles>                        (自定义的资源文件)

●META-INF 目录
  大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。Java 2 平台识别并解释 META-INF 目录中的文件和目录,以便配置应用程序、扩展和类装载器.
●/WEB-INF/web.xml:web.xml文件用于配置Web程序,它被称为Web应用程序部署描述器(Web Application Deployment Desicription)。他是一个用来描述Servlet和其他Web应用程序组成部分以及它们的初始参数等属性的XML文档。
●/WEB-INF/classes:这个子目录用于存储所有Java类文件和相关资源文件,如图片、语言信息等。这些类文件可能是servlet,也可能是普通的Java类。需要注意的是,如果一个类文件属于某个包(package),则需要将整个目录层次结构放置于classes目录下。
●/WEB-INF/lib:该子目录用于存放Web应用程序所需的所有库文件,这些库文件是以压缩的.jar文件格式存储的,它包含所有Web应用程序所需的类文件和相应的资源文件。比如,一个电子商务应用需要访问Oracle,就需要将要使用的JDBC驱动程序库文件都放置于lib目录下。
  

   一般Java Web的项目目录结构

WebRoot-
       -common   (系统框架公用jsp 如footer.jsp,header.jsp)
       -images
       -scripts  (javascript库等)
                -dojo                --dojo库,进行库的统一版本管理
                -ext                 --extjs库
                   -project             -- 当前项目js目录
        -styles -                   (css模版)
               - css 风格1
               - css 风格2
       -WEB-INF -
                -pages   (项目jsp页面,为提高安全性,放到WEB-INF 下面)
                -classes
                -conf    (项目使用配置文件)
                -lib

   因为公司里的项目是Spring MVC框架,因此我把寻找到的一些有关资料也上传给大家分享,希望有所帮助。
   Web目录结构及类包结构规划
   事先规划好程序的类包结构和Web目录结构是非常重要的,可以使后续开发的程序文件各得其所,得到一个结构清晰的应用程序,方便后期的扩展和维护。我们对论坛应用的源码包和Web程序目录作出以下的规划,如图17-13和图17-14所示。
    




   所有的源代码文件位于src/main文件夹中,在main文件夹中规划两个子文件夹,其中resources文件夹专门用于放置系统配置文件,java文件夹用于放置Java源代码文件。所有类位于com.baobaotao包中,该类包下为每个分层提供一个相应的类包,如dao对应持久层的程序,而service和web分别对应服务层和Web层的程序。由于PO会在多个层中出现,因此我们为其提供了一个单独的domain包。为了避免在程序中直接使用字面值常量,需要通过常量定义的方式予以规避,我们在cons包中定义应用级的常量。为了统一管理应用系统异常体系,我们在exception包中定义业务异常类及系统异常等。你可以在分层包下再按功能模块定义子包,由于我们的论坛案例比较简单,每个包都不设子包。

  我们为DAO和服务类Bean分别提供一个Spring配置文件,前者为baobaotao-dao.xml,后者为baobaotao-service.xml。jdbc.properties属性文件提供了数据库连接的信息,这个属性文件将被baobaotao-service.xml使用。log4j.properties属性文件是Log4J的配置文件。我们将这些配置文件直接放置在类路径下。

  Web目录结构很简单,我们将大部分的JSP放置在WEB-INF/jsp目录中,防止用户直接通过URL调用这些文件。WEB-INF/baobaotao-servlet.xml为Spring MVC的配置文件。如果项目的JSP文件数目很多,则可以在WEB-INF/jsp目录下按功能模块划分多个子文件夹。一般的Web应用都会在Web根目录下创建images、css、js等文件夹,分别放置图片、CSS以及JS的资源文件。我们的论坛应用比较简单,没有这些资源,所以这些文件夹没有出现在目录结构中。
 
    单元测试类包结构规划

    规划好程序的类包结构之后,需要根据应用程序分层结构规划相应的单元测试结构。为了单元测试模块清晰、可读,一般情况下,可以根据应用程序分层建立相应的单元测试目录结构,如图17-15所示。



    与应用程序代码结构一样,测试所有的源代码文件使用专门的文件夹进行管理,所有与单元测试相关的文件,都放置在src/test文件夹中,在test文件夹中规划两个子文件夹,其中resources文件夹专门用于放置测试配置文件,java文件夹用于放置测试Java源代码文件。所有测试类位于com.baobaotao包中,该类包下为每个分层提供一个相应的类包,如dao对应持久层的测试代码,而service和web分别对应服务层和Web层的程序测试代码。


   以上一些是我摘抄的资源,感谢作者的分享精神,对此表示感谢:
   http://blog.csdn.net/boral_li/article/details/5965873
   http://book.51cto.com/art/201203/321267.htm
   http://xfjt297857539.iteye.com/blog/1462873
   时间匆忙,晚点再修改。
  
  • 大小: 8.1 KB
  • 大小: 10.5 KB
  • 大小: 8.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics