工作中项目框架和项目结构的演变

工作到现在也三年多了,现在总结下工作过程中使用的框架和技术,开发工具以及项目结构的变化。

这里并不会去详细的去叙述哪一方面,只是简单的描述下。好了,开始。
 
组合1、开发工具:myeclipse;  采用框架:无  ;采用jdbc访问数据库;servlet+jsp+el+jstl显示数据,偶尔使用点js;采用mvc开发模式
其实这种写法写起来是挺累的,而且很容易出现问题,就像jdbc,当时自己封装的一个非常垃圾的DBUtil,现在看起来真是非常简陋。但我认为这一组合(myeclipse可忽略)对于初学者来说都应该去弄熟练了,这些基础对于以后的发展都有很大的好处。记得当时我和一个伙计就是用这些东西,做了一个系统,每个人还转了2000块钱。这些东西学习还行,公司中工作使用不推荐。
 
组合2、开发工具:eclipse;采用框架:spring+hibernate+struts2;依然采用jsp+el+jstl显示数据,当然也加上了一个OGNL,依然采用mvc开发模式,创建一个项目美分为三层。并且前端开始使用jquery,ajax请求也多了起来。
这种组合相对上面来说,开发起来轻松多了,这也是将点的三大框架了,无论是从数据库访问还是页面显示,以及对java对象的管理,都极其的方便了。但hibernate用起来好用,用的好却不是那么容易的。
 
以上两种组合主要是在大学期间使用的,对于jar包的依赖都是通过手动的添加进行管理。
 
组合3、开发工具:eclipse;采用框架:spring+mybatis+spring mvc;页面显示采用jsp或freemarker;采用了maven进行依赖管理,采用mvc开发模式,但这些层已经不都聚集在一个项目中了,而每一层都作为一个单独的module,这样项目结构非常清晰。这一阶段项目中大部分页面的数据都已经为ajax的了,并且前端采用了js模板引擎,如:arttemplate,这样避免了手动拼html的麻烦事儿。
 
对比上面可以看到,这里已经I昂hibernate换位mybatis,mybatis用起来也很方便并且其因为自己写sql,可以自己对sql进行定制。而struts2换为了springmvc,用了springmvc后,反正我是觉得再也不想用struts2了。上面说到了,项目分为了多个module,一方面是因为很维护与管理,另一方面就是当时接触的项目已经是分布式项目了,别的项目可能会依赖这个项目的接口或domain,所以如将domain单独作为一个module,方便打包上传的maven仓库。
 
另:项目之间的远程调用采用的dubbo
 
组合4、基本与组合3相同,只不过完全的前后端分离了。后端只提供REST的json数据。前端采用anjularjs,前端的开发工具为webstorm。还有一点要说明的是,这使得构建工具有maven换为了gradle。
这个组和中,后端的代码中已经没有了jsp或者freemarker等,有的只是springmvc提供的API数据接口。前端静态页面存储在nginx中。这是前端对后端数据的访问已经完全异步,全是ajax请求。
且项目中采用了jekins作为项目的集成。
 
以上介绍的几种组合,servlet容器均使用的是tomcat和jetty,其中jetty使用居多。
 
组合5、依然是前后端完全分离,但angularjs换为了angularjs2(有点坑爹),其中最大的变化是后端采用了springboot。这时最终运行的程序大的包已经不是war包了,而是jar包了。也可以这样说,前几个组合都是我们程序运行在jetty中,而现在用了springboot,jetty嵌入到我们程序中了,这样最终部署,只需要jar -jar XX.jar 启动程序就行了,非常方便。
开发工具也换成了,Itelij Idea。angularjs2与anjularjs对说是对anjularjs的升级,但完全改的不像样了,可以说是重新做了一套,但使用起来思路清晰了好多。而spring boot也推荐大家去学习下,使用它我们可以很轻松的就搭起一个项目,并且他生成的可执行的jar包,在云平台或者docker中部署是非常方便的。
 
以上就是总结我使用的的大体的几种组合,一些细节也没有去叙述,漏下了许多。欢迎大家的批评与指正。同时,强烈像大家推荐gradle,个人感觉,它比maven好用太多了。 Itelij Idea用习惯了也感觉确实比eclipse方便很多,但这玩意儿收费啊。
 
 
 
 
 
 
 
 

猜你喜欢

转载自notafraid.iteye.com/blog/2335921