struts2 vs spring boot

2010年使用struts2做web项目(一个招投标平台软件,每年招标金额在200~300亿,注册有数千家投标企业,近百家招标代理机构,以及招标办和交易中心几十个工作人员,系统最后维护到struts2.3.32,2017年3月解决S2-045安全漏洞),一直运营到2017年10月项目下线。

对struts2最赞的或是以下一些特点:

1.方便的类型转换和输入验证功能,可以将程序员从繁杂的数据处理中解放出来,专注于业务逻辑;依靠拦截器实现功能,同时也产生了相应的安全漏洞:影响比较大的是S-016安全漏洞(2013年7月发现,当时我正在去西藏的路上,对此浑然不知,我们的服务器到2013年底才受到攻击,解决办法:系统升级到struts2.3.16)。

2.通过拦截器方便实现用户认证和权限管理功能(将用户认证信息保存在会话中)。

3.通过全局的ValueStack方便地获取数据,并通过“s:”标签将数据(甚至是对象)自动装配到JSP页面里。或者今天看来不是主流推崇的前后端分离开发模式,但是就本项目而言,因为页面也是通过JSP在后端生成,使我这个不怎么懂前端的家伙得以以一己之力码成了一个规模挺大的平台。

。。。。。

2015年以来,一直考虑做一个通用的平台软件,适用于物联网应用,例如智能家居或能源管理等应用。

最近,这件事逐渐明确下来:做一个通用的数据采集监测系统,有良好的可扩展性,便于适配到具体的应用。

至于框架,内心依然很想继续使用struts2,毕竟有8年的使用经验,还有上面说的自己认为很不错的功能。

上个月,有机会和刚工作不久的程序员交流,发现他们只知Spring Boot!要么不知struts2,要么也只是知道“struts2”--这个名词而已;于是我内心有了一丝疑惑:struts2肿么了?

从官网上看,2.3.x的最新版本是2.3.34,更新时间是2017年9月,修正S2-053。

截止目前发现的安全漏洞S2-054/S2-055/S2-056,2.3.x已不再维护。可以将“lastest”理解成2.3.x系列最终的版本。

所以,对我来说,要继续使用struts2,必须升级到2.5版本!之前项目使用的是Tomcat6,官方也不再维护了;目前Tomcat的推荐版本是Tomcat8或Tomcat8.5,需要JDK7或JDK8支持!

另外,能够确定的是新项目开发数据库将基于MySql,使用JDK1.8以及Tomcat8或Tomcat8.5,如此大的变化去做struts2升级也要花费一些时日(第一次从2.0.8升级到2.3.16花费了一周时间,第二次升级到2.3.32花了3天时间吧),虽然比新练一门武功省事,但........

偶然的机会,看到“刘冬的博客”(地址:https://i.cnblogs.com/EditPosts.aspx?postid=9315256)。

 这是他2年前写的文章,打消了我对Spring Boot的顾虑:原以为Spring Boot只是提供微服务的,开发过程缺少struts2才有的便利。

刘冬的另一篇文章,“spring boot + vue + element-ui全栈开发入门——开篇”(地址:http://www.cnblogs.com/GoodHelper/p/8430422.html),促使我下决心抛弃struts!

“目前流行的“前后端分离”技术足够简单,足够方便,足够易学,也足够完善。”

真的吗?我计划近期内按这两篇文章走一遍,如Spring Boot的确如此,那可能未来的三五年俺就与它相伴了。

猜你喜欢

转载自www.cnblogs.com/shlb/p/9315256.html