如何读一个JavaWeb项目源代码
感谢原作者:http://www.cnblogs.com/lzb1096101803/p/4907775.html
一、学会如何读一个JavaWeb项目源代码
步骤:表结构->web.xml->mvc->db->spring ioc->log->代码
先了解项目数据库的表结构,这个方面是最容易忘记的,有时候我们只顾着看每一个方法是怎么进行的,却没有去了解数据库之间的主外键关联。其实如果先了解数据库表结构,再去看一个方法的实现会更加容易。
然后需要过一遍web.xml,知道项目中用到了什么拦截器,监听器,过滤器,拥有哪些配置文件。如果是拦截器,一般负责过滤请求,进行AOP等;如果是监听器,可能是定时任务,初始化任务;配置文件有如 使用了spring后的读取mvc相关,db相关,service相关,aop相关的文件。
查看拦截器,监听器代码,知道拦截了什么请求,这个类完成了怎样的工作。有的人就是因为缺少了这一步,自己写了一个action,配置文件也没有写错,但是却怎么调试也无法进入这个action,直到别人告诉他,请求被拦截了。
接下来,看配置文件,首先一定是mvc相关的,如springmvc中,要请求哪些请求是静态资源,使用了哪些view策略,controller注解放在哪个包下等。然后是db相关配置文件,看使用了什么数据库,使用了什么orm框架,是否开启了二级缓存,使用哪种产品作为二级缓存,事务管理的处理,需要扫描的实体类放在什么位置。最后是spring核心的ioc功能相关的配置文件,知道接口与具体类的注入大致是怎样的。当然还有一些如apectj等的配置文件,也是在这个步骤中完成
log相关文件,日志的各个级别是如何处理的,在哪些地方使用了log记录日志
从上面几点后知道了整个开源项目的整体框架,阅读每个方法就不再那么难了。
当然如果有项目配套的开发文档也是要阅读的。
如何读一个JavaWeb项目源代码相关推荐
- 不借助idea开发工具构建一个Javaweb项目
不借助idea开发工具构建一个Javaweb项目 目录结构 webappsroot|----------WEB-INF|----------classes(存放字节码)|----------lib(存 ...
- 如何创建一个javaWeb项目
一.使用IDEA创建一个javaweb项目 截图中文可以直接按照截图查看,未汉化可以根据提示来进行创建 1.File->New Project选择Web Application 然后填写好路径和 ...
- IDEA-第一个Javaweb项目
配置Tomcat服务器: 下载(略,附地址) 地址:https://tomcat.apache.org/ 以apache-tomcat-7.0.73为例 启动Tomcat 找到apache-tomca ...
- 如何使用 IntelliJ IDEA(2020.2)构建一个JavaWeb项目
如何使用 IntelliJ IDEA(2020.2)构建一个JavaWeb项目 针对 IntelliJ IDEA 2020.2 这个新版本,不管是在创建项目上,还是在进行一些选项的配置上,与之前的版本 ...
- 部署一个Javaweb项目到腾讯云服务器上,在腾讯云轻量应用服务器上部署javaweb项目
博主每篇博文的浪漫主义 [听说,思念是一种病?] https://www.bilibili.com/video/BV1z14y177VT?share_source=copy_web&vd_so ...
- Jsp+Servlet 的一个JavaWeb项目千里眼影视售票院
千里眼影视售票院 开发工具:idea jsp+servlet java语言开发 Mysql数据库 前段layui+bootsrtap B/S架构 mvc的设计思想 文章目录 千里眼影视售票院 前言 需 ...
- IDEA创建一个JavaWeb项目详细步骤
刚好最近在写数据库大作业任务书,留了一份,发在博客上 提前说明 使用IDEA+Html5+CSS+JavaWeb+MySql开发,并使用Tomcat部署在本地服务器上. 其中JDK版本为1.8, My ...
- Idea搭建一个JavaWeb项目(一)
说明: IntelliJ IDEA 版本为2017.2.6 JDK 版本为1.9 tomcat 版本为apache-tomcat-9 1.先创建一个工程: 2.输入项目名称和项目路径,点击next 3 ...
- 初学者第一个JavaWeb项目实战【附源码】
我把项目打包了,下载完整项目:[链接:https://pan.baidu.com/s/1lpInPKynMriSvAKlgh53eg 提取码:zq6y],导入后记得将数据库改为自己的. JDK:jdk ...
最新文章
- 运用策略路由实现双出口数据的分流
- C++用数组和链表分别实现Stack
- 大学毕业出路利弊浅谈
- DBeaverEE7.3.0安装教程
- GitHub标星6000+!Python带你实践机器学习圣经PRML
- @Intercepts-mybatis拦截器
- Resharper F12下载dll源码
- hibernate之c3p0连接池配置详解
- 详述差分进化算法(DE)代码复现
- 微型计算机的cpu分类,微处理器分类及组成
- Ubuntu firefox无法加载视频
- 拳皇FANS们不得不看的动画
- docker 网络的解释
- 解决vmware虚拟机和宿主机之间不能复制粘贴问题
- S-SDLC(Secure Software Development Lifecycle) 安全编码规范
- 深度学习之目标检测(九)--YOLOv3 SPP理论介绍
- 新手怎么重装系统?只需3步看完小白也会装!
- 计算机 教案,计算机教案.doc
- 小米8 解账户锁 线刷包 刷入 教程 MIUI12系统
- 【安卓】腾讯Bugly之应用升级热更新-热更新
热门文章
- 华为od机考真题-特殊计算
- 创业时全力以赴和留有后路的结果相同吗?
- Flutter基础-(3)Widget之文本Text
- Mac系统解决ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘方法
- javascript简介(概念)
- 如何直接修改exe文件
- 多元时间序列预测之(一)DA-RNN模型
- 某厂向用户提供饲料matlab,Matlab习题
- linux 用户环境变量介绍
- Cocos2dx3.10常侍之移驾UBUNTU