###一. Play框架分析
Play 是一个Rails风格的Full-stack Java Web框架。Play 遵循Web的MVC架构模式。Play采用约定的形式把相关文件分到controls、models、views 三个包中,通过这样方式的固定使得整体层次分明,架构清晰,降低了入门难度。
Play 总体架构上采用了可扩展的内核模式+插件的一种架构,Play 极大的利用了现有第三方库,通过包装很巧妙地把第三方库融合到了自己的体系中。在model 层采用了JPA和Hihiernate;在在网络方面采用了Netty;在日志方面巧妙的整合了log4j、self4j等类库;在模板解析方面利用了先进的Groovy 作为解析引擎;在展示方面使用了页面继承技术极大了方便了编写类似页面,保持页面风格统一;在测试方面整合了JUnit和Selenium等,使写测试代码也非常方便;在整体程序上使用了自定义注解的方式避免了繁琐的xml格式的维护;通过Java动态编译技术使得Play可以源码运行,通过反射技术把拦截器,验证和路由与控制器的对应巧妙地串联起来;Play 预留了编写Job的方式,资源国际化,缓存可扩展等等。总之,Play 号称Full-stack Java Web框架 当之无愧。
###二. Play 的工具
Play 不仅仅提供了优秀的框架,Play 还为开发者提供了优秀的基于命令行的工具和Eclipse 插件。Play 的命令行工具是python 开发的,通过阅读python 源码可以看到如何实现一个优秀的命令行方式的工具;Eclipse 插件包括路由文件的编辑器,方便的是可以根据点击路由直接跳转到对应的方法中去;Play的Eclipse 插件还可以实现生成model,control,view等界面。
###三. Play源码分析总结
通过阅读源码知道了实现一个应用程序服务器大概是需要一个什么样的方式,大概需要实现那些功能以及实现的方式。阅读源码更使我认识到整合能力的重要性,深深的被Play的整合能力吸引,他是如何把一些零散的第三方类库和框架整合到一个完整的框架下。在阅读源码前参考了一些优秀的博客感觉了有了一些现成的经验使我看代码更有条理,特把参考阅读的一些文章聚合起来形成了一篇Play 源码索引,https://my.oschina.net/zhugenqiang/blog/835783。
转载于:https://my.oschina.net/zhugenqiang/blog/877369