java web框架发展的新趋势--跨界轻型App
“跨界(cross over)在汽
车界已然成风,将轿车、SUV、跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势。从个人而言,当包容、多元的审美要求和物质要求越来越强烈时,跨界代表了一种新锐的生活态度与审美方式的融合。有人说,这是我们内心深处的渴望,也是我们在短暂一生中尽量多尝试应用不同体验的方式———驾驶跨界车,演绎着一种新颖的生活方式。”
目前互联网开始渗透到各行各业中,各互联网之间的整合也是此起彼伏。大量整合、渗透互联网如新浪和高德地图,支付宝和基金,支付宝和快递等的轻量型的跨界试水业务纷纷抢滩。如何来提供这种跨界业务形态的快速上线所需的开发效率和应对其所带来的代码膨胀,资源利用问题,Easyweb给出了一种解决方案,扎根业务平台,将重用逻辑宿主化,结合外界业务的WEB API,利用脚本语言快捷的进行原型开发,迅速孵化出各种轻型app。在业务运行过程中,许多极有可能被淘汰,剩下的开始逐步独立成应用,Easyweb起到了一个孵化池的作用。
Java web框架发展到现在已经经历了十几年的历史,如turbine,struts,webwork,spring mvc,struts2,webx等等。互联网的网站形态从一开始的web1.0如门户网站到web2.0如微博;信息流动方式从一开始门户到用户的单向流动到用户和用户间的双向流动;用户体验上从整页刷新到局部刷新;从与展示紧密相连的动作性操作到可被重复使用的web API(web service ,rest);从PC浏览器的网页接口到手机app的纯数据化接口,变化是如此地翻天覆地。显然的,这些变化推动了web框架的发展,如考虑到REST 服务支持,tomcat 6到tomcat7从只支持GET,POST方法到对GET,POST,DELETE,PUT,HEAD等多种方法的支持;与此同时,Jdk的每次发布都会给web mvc框架带来新的技术热点,如spring3 mvc 的annotation 配置取代spring2 mvc原有的xml配置文件升级。现今跨界app也成了业界热点之一。
最近由于业务需要学习了一个淘宝内部的框架,easyweb。Easyweb easy在什么地方呢:
一是开发效率高,上手easy.如语言简练,比如写一个判断字符串非空,
Java写法:
1:
2: s!=null&&s.length>0
groovy 写法:
1: if(s)
另外则是热部署,大型web项目规模动则几百MB WAR,在其中作一次修改重新启动一次需要几分钟时间。如果能进行热部署,那么大大提高了开发调试的效率。
开发效率高是脚本语言groovy给java web框架带来的礼物。JDK7对脚本语言进一步增强,从JSR 223到JSR292增加了invoke dynamic类型,采用了bootstrap方法来动态绑定方法,并在绑定过之后可以快速返回绑定方法,在性能上会得到大幅提升。
二是处理的问题域及其处理方法easy,只取request的拦截和模板渲染,其他通通不管。
三是开发的程序都是业务easy的轻型app.这些轻型app特点大多是共享依赖相同集合的jar和资源,业务上也比较轻量(几个到几十个页面)。
easyweb整体结构:

1. easywebValve或类似的filter完成url的拦截,将某类url请求分发到easyweb的RequestProcessor;
2. 在RequestProcessor中初始化ThreadLocal变量context,将request,response,对应的app(app映射标识是url中的一部分,如/weibo/home.html映射到weibo app里)放入context中;
3. groovyEngine根据params(请求中的参数),groovy files(根据url映射找到对应的groovy文件)进行脚本调用,生成obj;
4. VelocityEngine将obj属性填充到vm模板(这个也由Url映射可以得到),生成html页面返回到客户端。
综上所述,如easyweb框架一样可利用WEB API和脚本语言快速拼接轻型app适应跨界需求是以后java web 框架发展的新趋势之一。
参考资料:
2.New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine
java web框架发展的新趋势--跨界轻型App的更多相关文章
- Web应用架构的新趋势
系统架构:Web应用架构的新趋势---前端和后端分离的一点想法 最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前 ...
- JAVA web 框架集合
“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还 ...
- 五大 JAVA Web 框架的优缺点对比,Spring MVC 领先
毫无疑问,Java 是当今世界上最重要的编程语言之一.js 框架给程序员提供了 一个可以构建程序的坚实基础.它包括定义的类和功能,用于硬件设备管理,与系统软件交互并处理输入,让开发人员变得更轻松.Ja ...
- [转]轻量级 Java Web 框架架构设计
工作闲暇之余,我想设计并开发一款轻量级 Java Web 框架,看看能否取代目前最为流行的而又越来越重的 Spring.Hibernate 等框架.请原谅在下的大胆行为与不自量力,本人不是为了重造轮子 ...
- Java Web框架前景浅析
基于三(多)层架构模式,典型WEB系统的总体架构如下图所示: 在上述分层架构中,整个应用被划分为两大部分: 客户端:基于浏览器提供信息展现.用户交互等功能.所采用的技术主要有:HTML/HTML5.J ...
- 浅析Java Web框架技术
一.Java Web框架技术的概念 所谓的Java框架,简单理解是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计.协作构件之间的依赖关系.责任分配和控制流程,表现为一组抽象类以及其实例之 ...
- 1.2 java web的发展历史
前言 了解java web的发展历史和相关技术的演进历程,非常有助于加深对java web技术的理解和认识. 阅读目录 1.Servlet的出现 2.Jsp的出现 3.倡导了MVC思想的Servlet ...
- Smart Framework:轻量级 Java Web 框架
Smart Framework:轻量级 Java Web 框架 收藏 黄勇 工作闲暇之余,我开发了一款轻量级 Java Web 框架 —— Smart Framework. 开发该框架是为了: 加 ...
- [转]1.2 java web的发展历史
前言 了解java web的发展历史和相关技术的演进历程,非常有助于加深对java web技术的理解和认识. 阅读目录 1.Servlet的出现 2.Jsp的出现 3.倡导了MVC思想的Servlet ...
随机推荐
- Linux下gdb线程的调试
多线程的调试命令 1.info threads: 这条命令显示的是当前可调试的所有线程,GDB会给每一个线程都分配一个ID.前面有*的线程是当前正在调试的线程. 2.thread ID: 切换到当前调 ...
- angularJS自定义一个过滤器
ng允许我们自定义指令 下面来我们自己来定义一个过滤指令:filter,返回一个函数的形式 filter(name,callback(){//name:过滤器的名字,callback:匿名函数 ret ...
- 搭建基于hyperledger fabric的联盟社区(三) --生成公私钥证书及配置文件
一.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书.这些证书本来应该是由CA来颁发,但是目前只有两个社区,所 ...
- STM32学习笔记之__attribute__ ((at())绝对定位分析
STM32也会遇到这样的绝对定位的问题如下: uint8_t UART_RX_BUF[1024] __attribute__ ((at(0X20001000))); //就是将串口接收的数 ...
- 手动封装OpenCV1.0的IplImage读取保存功能遇到的小问题
最近准备重新学习图像处理的知识,主要目的是自己实现一遍图像处理的算法,所以除了读取.保存图像外的操作都自己写,没想到直接封装OpenCV的读取.保存功能的第一步就出错.关键代码如下 void MyIm ...
- IDEA開發 java web 初步
作爲一個小白,我也不知道爲啥同學們喜歡用IDEA開發,而不選擇eclipse,但是在項目學習中eclipse卻真的多次出現問題,無奈之下,本人也安裝了一個IDEA作爲學習使用.參考了博客開始使用這個工 ...
- postman关联 (含获取请求头的方法)
在Tests里面输入脚本 var jsonData = JSON.parse(responseBody);postman.setEnvironmentVariable("message&qu ...
- Django跳转
跳转问题 如果我现在停留在文章的详情页,用户未登陆,如果你要评论,或者点赞就应该回到登陆页面登陆 如果登陆成功了,就要返回到当初跳转过来的页面 第一种通过前后端传送数据 $('.hit').click ...
- OD 实验(三) - 破解程序的文件验证
需要破解的程序 双击程序,提示需要许可证文件 逆向程序 用 OD 打开 LoadIconA 为加载图标 LoadCursorA 为加载鼠标 F8 走一下程序 走到了这里,调用了 CreateFileA ...
- 【转】Android 中处理崩溃异常并重启程序出现页面重叠的问题
原文地址:http://blog.csdn.net/jiang547860818/article/details/53641113 android开发中经常会遇到程序异常,而已常常会遇到一出现异常AP ...