首页 技术 正文
技术 2022年11月16日
0 收藏 734 点赞 3,594 浏览 9185 个字

原文地址:http://www.cnblogs.com/lzb1096101803/p/4907775.html

一、学会如何读一个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. 当然如果有项目配套的开发文档也是要阅读的。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAAAYCAIAAACUQl9wAAADTUlEQVRYhe2YXU/aUBiA+StezC37CedK/oc0MVl6qXeD3hhZvCJeVJoFTAzDiyUzUoKSNKhTIVnUHo0KywDTaPkQwfAhBWzLgLILbCnidMSaiekTLsrhvG/fPj1vD2Bo62iE4X8X8Hp4qspg0I2QsPNyu62a1DSkPEklASFCQgLCdrPihdA0TxrdQa0qGzoGUHkUmNpwjG44RjcX3l/njnd2XCbPntQos6zrgvYQECIQmuZJLdYmgwMDSj05TQ8UqnnKXgZQueEYlVrXUj3Vqp5IjWuEpOHFfrvJ2e0f6f15lg0ukNMIARHM++SqXrvKo8DUqm3EZxvxz70pZo5Mnr0v21vp/RWSNJO02eo2er0YgiG6yn8C+xw4z1a5m7okSQgJCZoe99DjJEkQyITViGGI0WrVVT7O3NcfqTxf4IQqL7YkKRh0j027EBKa7DTx9h2GIRiGIZi3/1lJoQaAM/KhfEHdUQo13CJP66jsjt9xwOBAncaAUrfpKBwo8+Vo1alfhsol/8G379F0gS9VRUGstyWpJUkICcemXSYPbbKQJguJYF4Mw/pju2uMQgEAnWuTTao8dycyOFAJVPlXuA27cz+U1Eq0+twvROXs4ub2UTqV5/OcWONFoV5vtqRGU9oJugnCYjZb7HbLX/du+XooFOAMhQKcaTM4kE32AnCmr8Hv7fdOpHIb1Lfk3uMXo3LS5jtkimc5PlMU8pxQqop5Tqw3WuLvVk1osJnig9EdcSqJFH5ncfbNf70qJ2aWwwkudlE9y92k8kK6ICTzwlnuJn5ZiyS5D59WHg5ncABAt3uVNr/TvRTabUtltPuGwYGqnwHO9A3IaV6yykmbbzd29TNZiaZr8Uzt9LJ2mqn9SlcjSW43djVp8z0Sr5ajEqB81Lu9MDgwoGjfriMHUqiyHJW8w6NydnFz6zB+wpbDCS6SqESSlUiCCyfKJ2x56zA+u7j5nEUOBwPs4IFQKJU9jyWzkUQhzJbCbCGazKazbCAUWvIfPGuVQ8EA3yudy+vNyjF/HSkXoqV8vFyM8uVIs3LsXF5/vvqGiMF+7ZjtazMOv9W5ZnWuWp1rMw6/2b72TJUNHfpfv5qhq9QMXaVm6Co1Q1epGbpKzfgDC7D6Vg6QvKEAAAAASUVORK5CYII=" alt="" /><img src="data:image/png;base64,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" alt="" />

二、爬虫是如何实现的:

获取规则url(正则表达式) -> 模拟请求(如httpclient get请求)-> 获取列表页html -> 获取信息页 -> 发送请求 -> 信息页html -> 根据规则截取相应的字段信息 -> 对字段进行清理(如图片压缩) -> 静态化(存储到数据库)

(转)一个JavaWeb项目开发总结

三、架构文档

开发项目是需要学会写架构文档,而不是只是做一个码农

包含以下内容:

  1. 模块分级,各模块关系,各模块负责人
  2. 各模块时序图
  3. 各模块表结构
  4. 协议文档(接口文档)
  5. 每个负责人工作计划

下发任务后每个模块的负责人用开发工具画出自己的时序图,表结构和接口文档,最后汇总到总项目负责人处。

(转)一个JavaWeb项目开发总结

四、其它

  1. 数据库是否分表问题:用分表的方式管理表有时并不合理,如果读的压力高是不值得的,可能更慢。如果写并发高就行(以千万级别为准)。 读是按缓存的,缓存密度在95%以上是比较保险的。读的优化:读单条信息,只需搜到这个id,然后直接从缓存中拿,缓存用id做缓存,查id的效率是很高的

  2. CMS=模板+数据:可以通过只有一套自己的模板(如用freemarker),发送请求获取json数据填入信息。CMS有模板通过把数据填入模板即形成一个网页。

  3. 计算机浏览器的网页内容要在手机上查看,需要做到响应式HTML

  4. 如通过抓取网页内容放到app上显示,需要做的内容:图片大小自适应,内容尽量保真,校验内容是否丢失,链接需要替换的需要进行替换,html标签替换

  5. 爬虫的核心是多线程的任务管理,抓取分页列表内容。

  6. 微信公众号上是如何绑定用户让用户只登录一次,下次不用登陆?这个过几天补充。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,999
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,357
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,140
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848