摘自网络博客。

===============================================================================================================

学会如何读一个JavaWeb项目源代码

步骤:表结构->web.xml->mvc->db->spring ioc->log->代码

1、先了解项目数据库的表结构,这个方面是最容易忘记的,有时候我们只顾着看每一个方法是怎么进行的,却没有去了解数据库之间的主外键关联。其实如果先了解数据库表结构,再去看一个方法的实现会更加容易。

2、然后需要过一遍web.xml,知道项目中用到了什么拦截器,监听器,过滤器,拥有哪些配置文件。如果是拦截器,一般负责过滤请求,进行AOP等;如果是监 听器,可能是定时任务,初始化任务;配置文件有如 使用了spring后的读取mvc相关,db相关,service相关,aop相关的文件。

3、查看拦截器,监听器代码,知道拦截了什么请求,这个类完成了怎样的工作。有的人就是因为缺少了这一步,自己写了一个action,配置文件也没有写错,但是却怎么调试也无法进入这个action,直到别人告诉他,请求被拦截了。

4、接下来,看配置文件,首先一定是mvc相关的,如springmvc中,要请求哪些请求是静态资源,使用了哪些view策略,controller注解放在哪个包下等。

然后是db相关配置文件,看使用了什么数据库,使用了什么orm框架,是否开启了二级缓存,使用哪种产品作为二级缓存,事务管理的处理,需要扫描的实体类放在什么位置。最后是spring核心的ioc功能相关的配置文件,知道接口与具体类的注入大致是怎样的。当然还有一些如apectj等的配 置文件,也是在这个步骤中完成

5、log相关文件,日志的各个级别是如何处理的,在哪些地方使用了log记录日志

6、从上面几点后知道了整个开源项目的整体框架,阅读每个方法就不再那么难了。

7、当然如果有项目配套的开发文档也是要阅读的。

原文地址:https://www.cnblogs.com/ZSG-DoBestMe/p/5132502.html

============================================================================================================

首先先把项目跑起来,跑起来之后,先看页面的跳转和业务上的逻辑,什么页面显示什么内容,做到心里有数。

这些都清楚了之后,就可以看后台代码啦,web项目一般就是mvc的分层模式。大致就是数据层,业务层,显示层。

所以建议先从显示层看(可以理解为页面啦),看的时候,着重理解业务逻辑,和哪些数据是需要交互的部分,心里有底。
看完之后对项目是干什么的,有哪些功能大致了解了,就可以准备看代码啦。
看代码,可以先从配置文件开始,看用到了哪些框架,大致心里有底,然后可以百度下框架的作用。
这个时候,对项目整体大概有个认识了,然后就可以去看请求在哪里接收,哪里处理什么业务逻辑,过程交互了哪些数据。

这里最好是单个页面或者单个功能模块分开来看最好啦。

=============================================================================================================

跟代码
目的:每个方法是干什么的?先执行那个?在执行那个?
找一个小的模块,这把片代码彻底看懂。这个时候你需要的就是跟代码了,打断点;如果是B/S的,你可以再加脚本调试debugger。
告诉你一个小窍门:当跟代码的时候,旁边放一张纸,遇到主要的方法,要记下来,从头到尾记下来,等跟完了自己可以拿这张纸进行复述。这样这个功能大
概怎么跑的你就记下了。跟的时候遇到的方法一定要记下来,但是跟的时候一定不要去查,等跟完了在去查。如果是由于自己知识点的原因,应马上彻底补上来。
小结:这个是核心,一般人只是跟不记,等一下自己就不知道自己会那些,不会那些,大概怎么跑的都不知道了。所以一定要记。比如我之前开发全部是用户控件
,很抓狂,你根本不知道那个方法先加载,那个页面需要参数,但是你把它画出来了,一点点看下来了,感觉很有意思。

=============================================================================================================

1.总揽项目的体系结构。
项目的依赖关系同时表明了项目的复杂程度。对于大型的项目通常都会分割成若干子项目,根据项目的依赖关系,循序渐进的方式可以让阅读变的简单。我觉得先搞清整个项目的体系结构比较重要,先进行简单的分解,看简单的部分,没有什么迷人的地方就跳过去,对于写的很好的地方,一定要自己动手写一个test,对于不懂的知识,可以去查msdn,或者其他的资料,最好阅读英文版本的资料。并记好了笔记。
2.识别设计模式。
对于大型项目来说,设计模式是必不可少的。在庞大的代码中识别设计模式,寻找代码
中使用相似手法的代码结构可以极大简化需要阅读的代码。并且可以感受到该设计模式的一次精彩应用,实在是很爽的一件事情。
3.根据数据流程调试分析子模块。
根据项目中,输入数据如何在代码中执行流动,可以对程序进行动态分析,了解各个模块的动态职责划分。体会一些知识的精彩应用。

如何阅读一个Web项目 【转载】的更多相关文章

  1. 一个web项目中web.xml<context-param>的作用

    转   <context-param>的作用:web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置 ...

  2. eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

    在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会 ...

  3. Eclipse的maven构建一个web项目,以构建SpringMVC项目为例

    http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...

  4. Web —— java web 项目 Tomcat 的配置 与 第一个web 项目创建

    目录: 0.前言 1.Tomcat的配置 2.第一个Web 项目 0.前言 刚刚开始接触web开发,了解的也不多,在这里记录一下我的第一个web项目启动的过程.网上教程很多,使用的java IDE 好 ...

  5. 一个web项目在myeclipse中add deployment时无法被识别出来的原因

    当我们一个web项目,在myeclipse中,add deployment时,可能发现,根本无法被识别成web项目,可能的原因有:   1. 项目的properties ->Myeclipse ...

  6. 转 一个web项目web.xml的配置中<context-param>配置作用

    一个web项目web.xml的配置中<context-param>配置作用   <context-param>的作用:web.xml的配置中<context-param& ...

  7. 如何在Linux中tomcat下运行一个web项目

    如何在Linux中tomcat下运行一个web项目 然后启动Tomcat项目.运行的运行后会自动将war包解压. 如果页面报404,那么请查看tomcat日志文件,它一定是报错了....

  8. 使用maven构建一个web项目

                          使用maven构建一个web项目     首先建立一个maven项目(关于环境配置上节有详细过程): 1)-->右键new,-->project ...

  9. 使用Maven+ssm框架搭建一个web项目

    1,前期准备:Eclipse(Mars.2 Release (4.5.2)).jdk1.7.tomcat7.maven3.2.1 2.使用eclipse中的maven新建一个web项目 点击next: ...

随机推荐

  1. 量化分析:把Tushare数据源,规整成PyalgoTrade所需格式

    量化分析:把Tushare数据源,规整成PyalgoTrade所需格式 分析A股历史数据,首先需要确定数据来源.如果只想做日k线.周k线的技术分析,可以用PyalgoTrade直接从yahoo.goo ...

  2. Codeforces 606-C:Sorting Railway Cars(LIS)

    C. Sorting Railway Cars time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  3. python的一些基本的建议

    一.编码风格 python程序要写的易于阅读 二.python代码的样式规则 遵循PEP8 4个spaces是一次缩排,不允许tabs,不允许混合使用space和tab,方法之间要有一个空行,类之间要 ...

  4. Python学习思维导图

     刚学习Python时,边学边总结的,采用思维导图的形式, 适合回顾使用.内容参考<Python:从入门到实践>一书.   再给出一张Datacamp网站上的一张关于Python基础的总结 ...

  5. 关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  6. Windows 2008 关闭远程桌面的单用户多会话模式

    Windows 2008 关闭远程桌面的单用户多会话模式 在腾讯云上购买了一台云服务器. 因为设置了自动登录,在远程桌面连接后会启动一个新的会话,然后软件被运行了两次,端口被占用,无法起动. 还有可能 ...

  7. 【linux】linux文件属性权限的介绍

    众所周知,root的信息存在/etc/passwd下,个人密码存在/etc/shadow下,所有组名存在/etc/group下,因此这三个文件十分重要. 在linux系统下,我们可以通过"l ...

  8. 十三.jQuery源码解析之$.type()

    512行:出现了一个class2type. 在jQuery中全局搜索这个变量. 这段代码的意思是将一串字符串通过空格分割成数组,并且使用each遍历数组来初始化class2type. 最终的结果应该是 ...

  9. java selenium webdriver第四讲 应用小结

    部分api 1.访问网站 driver.get("http://www.baidu.com"); 或者 driver.navigate().to("http://www. ...

  10. 好记性不如烂笔头-linux学习笔记4apache相关知识

    apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 比较好,效率高,但是吃的内存比较大. 2 如果是高负载高并发 ...