我是从asp.net平台转到java平台的。基于asp.net平台开发网站的快速便捷性,工作几年来大小网站多少也写了6、7个。但是转到java后,因为是在一家大公司,而且做的功能也比较单一,局限于此,一直未能使用java来写一个web站点。后来正好大学同学从事淘宝电商,让我帮他弄一个网站,所以我就想到了使用java来开发这个站点,正好练手一下java顺便也是使用一下bae,因为很早之前就接触到了BAE,但是问题在于无法部署asp.net的网站,所以只好作罢,这次正好是一个难得的机会。
考虑到当前这家公司的网站使用的框架是从一个网站开速开发的手脚架而来的,所以我私下花了一些时间来学习了一下这个框架和它的自动代码生成器,然后就构建了这么一个网站。总的来说,感触多的是使用java来写web项目,只要工具使用得当,开发效率也是大大的高。只是诟病在于总是各种配置spring配置、struts2的配置、数据连接池的配置、orm的配置等等。而且对于踏入java中没有多少人来指导的我来说,很多第一次碰到的错误,都得通过自己一遍一遍的查阅来解决,多少有些心酸。
闲话说完了,那么现在开始剖析一下我的这个网站吧。网站是部署在BAE上的,一个淘宝信誉查询的网站http://www.taoxiaosha.com 网站已经死了好久每天pv180左右。
在asp.net中建站,使用一些新的orm时,我们会提到一些名词,比如dbfirst or codefirst
那么在当前的工作下,我先手动建立好需要的数据表,自然就是dbfirst了,然后通过上面提到的代码自动生成工具来生成我们选择的架构的相关代码。啥意思呢,就是这个代码生成器可以根据你自己的需要生成基于SSI或SSH等架构。我选用的是SSI架构,那么代码生成后的树结构如下:
网站结构通俗易懂。这个就是生成的代码结构,个人感觉大项目也好,小项目也罢,都比较适合这种架构了,至少目前在我接触到的应用范围中。项目中给我们生成了实体,javabean,基础数据访问层,数据业务逻辑层。以及我们的action。当然我自己因为业务的需要增加了一个servlet层。那么通过这么一个架构,就实现了java web项目的实现。
这个网站是做淘宝信誉查询的,那么自然少不了抓淘宝数据的功能了,抓淘宝数据使用的jsoup。jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。之前在asp.net中抓百度知道和新浪问答的时候使用过HtmlAgilityPack。两者都是功能异常强大,不过前者是有点类似jquery中的选择器来获取dom节点, 而后者则是通过强大的xpath来实现数据抓取。
最后介绍完了就说下我使用的web开发框架:
该项目主页:http://code.google.com/p/rapid-framework
这个当中有附带自动代码生成器,稍加研究、修改,就能定制一个属于自己的代码生成器了。