58同城开源web框架 Argo (二)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 58同城开源web框架 Argo (二)

58同城开源web框架 Argo (二)

 2013/9/24 13:05:19  biocy  程序员俱乐部  我要评论(0)
  • 摘要:58同城开源的轻量级web框架https://github.com/58code/Argo前面简单的写了点关于Argo使用的基本方法和Demo示例,其实只要前后看两遍,是很容易上手的。更多的人还是关注为什么要做这样一个框架,以及他是否能为开发人员解决常见问题,提高工作效率。对比Struts、Webwork、springMVC,他们提供的功能实在太多了。Struts1当前应用最广,现在还有一些遗留项目在使用。Webwork和Struts2这对孪生兄弟备受推崇,也因为树大招风
  • 标签:Web 开源 58同城

58同城开源的轻量级web框架?https://github.com/58code/Argo

前面简单的写了点关于Argo使用的基本方法和Demo示例,其实只要前后看两遍,是很容易上手的。更多的人还是关注为什么要做这样一个框架,以及他是否能为开发人员解决常见问题,提高工作效率

?

对比Struts、Webwork、springMVC,他们提供的功能实在太多了。Struts1当前应用最广,现在还有一些遗留项目在使用。Webwork和Struts2这对孪生兄弟备受推崇,也因为树大招风,N多站点为他的潜在漏洞买单了(由于没有关闭OGNL,导致提交的参数被当做代码执行。其实厂家老早就有补丁,只是这些站点没有关注升级)springMVC 同样非常好用,是spring控的最爱,spring的强大、类库的丰富,就不在这说了。

?

他们都提供了底层Controller的封装,只要web.xml中添加指定的servlet、filter、listener,开发者继承后实现指定的方法就可以了。还有可配置的DI(依赖注入)功能,没有这些框架的时候,大家必须从web.xml入手,添加大量的servlet,web.xml就成为了一个维护的难点。

servlet3.0提供注解方式创建servlet,在不依赖框架的情况下,也看不到过多的配置文件,但是不代表他真的就适合大规模的开发。用框架来进行统一封装、整合公共模块、规范开发、提高开发效率才是我们要做的事情。上面说的三个框架都过于繁重,太多我们不需要的东西。应该结合项目过程中所需要的功能,抽取必要功能统一并优化处理。

?

首先看看那个pom.xml都依赖了哪些东西,大致也就猜出这个框架的风格 :)

com.google.guava

com.google.inject

org.javassist

org.apache.velocity

org.slf4j

log4j

org.testng

依赖很少吧,想必功能精简到极致了,而且作者有可能是google派。

?

spring的IOC是最常用的一个功能了,屏蔽实例化过程,由框架来管理对象的生命周期,还可以叠加使用,确实很爽。Google开源的Guice是一个更轻量级的DI框架,可参考Guice与Spring的对比 http://baike.baidu.com/link?url=sEPp_KyBC1hmvHq22NW8s4veleEgZYi6Z6bfoBnEPQvrr17B6GMzQ1Rd3OZIHl-7

?

guava是google内部使用的java库,每一个包都值得学习一下

?

org.javassist? 是处理Java字节码的类库,大概能猜到一种使用场景了,java反射中拿不到方法的形参名称,用字节码就可以。所以前面一篇Path注解中的正则表达式对应的值的注入,貌似是已这种形式set进去的。

?

org.apache.velocity 页面模板框架,也没什么好说的,市面上使用最多的同类产品应该是freemarker吧。

?

剩下的log4j和testng也不介绍了

?

以上某些猜测全是个人看法,以后慢慢读代码再验证一下 :)

发表评论
用户名: 匿名