欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  精华频道

JavaEE 参考示例 SpringSide 作者江南白衣专访

程序员文章站 2022-03-03 19:28:31
...
SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,最佳实践的总结与演示。目前SpringSide的最新版本为4.0 GA

官网:http://www.springside.org.cn/
文档:https://github.com/springside/springside4/wiki

本期我们专访了SpringSide的作者江南白衣(肖桦),请他来详细谈谈这个优秀的开源项目。

ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。

先做个自我介绍吧! JavaEE 参考示例 SpringSide 作者江南白衣专访

肖桦,网名江南白衣,"花钱的年华"博主。曾是千禧年互联网创业者,失败的那种。现在是爱立信里一个依然在磨练Craftsmanship的Coding Architect。

JavaEE 参考示例 SpringSide 作者江南白衣专访

SpringSide是什么?为什么要发起这个项目? JavaEE 参考示例 SpringSide 作者江南白衣专访

SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是Java世界中的主流技术选型,最佳实践的总结与演示。因为基于Spring也因为对Spring理念的认同,项目起名SpringSide,另外还有个好记的中文名字——“春天的旁边”。

想起做这个项目,是在六七年前元旦辗转反侧的夜晚,想着自己应该为世界留下点什么。写一本书还是做一个开源项目呢? 总感觉书印出来了就没法改了,对我这种完美主义者有点难受。而开源项目,就可以永远年轻,永远生长,永远重构……

然后,做什么项目呢?那时候,淘宝们还没有开始大规模开源自己的技术。国内的原创框架更多是在自娱自乐。所以SprinSide选了一条更低端的路线,将那时候已经太多而不是太少的开源项目粘合在一起,用好,也算是一桩功德了。

SpringSide包含哪些演示项目? 这些项目采用或演示了哪些技术? JavaEE 参考示例 SpringSide 作者江南白衣专访

SpringSide里含有QuickStart 与 Showcase 一小一大两个示例项目。

QuickStart是一个迷你的TodoList应用,浓缩了一个普通JavaEE应用所需的柴米油盐各种基础技术,从典型的CRUD界面,到赶时髦的Rest API,以及最基础的用户管理功能,可以作为很多项目的初始骨架。

Showcase 则一个五花八门的JavaEE技术大杂烩大派对,如安全、缓存、日志、消息中间件、定时任务等等等等。

SpringSide 4和之前版本相比,有哪些较大改进? JavaEE 参考示例 SpringSide 作者江南白衣专访

SSH 与 SSH2 发展到高潮后,Spring也进入了一个后Spring的时代,受到各种新兴语言与框架如Play! Framework的围攻。SpringSide 4,演示的就是这个后Spring时代的演进,如何使得avaEE依然是个体面的选择。

一些变动包括 DAO框架转用Spring Data JPA + Hibernate, MVC框架转用Spring MVC 3, Restful框架转用Spring MVC + Spring RestTemplate, CSS框架转用Twitter Bootstrap,安全框架转用Apache Shiro 等等,Selenium升级到WebDriver。

所有变动的目标,都是在代码越来越简单的同时,也保持对工业化大规模开发的支持。比如有些新兴语言框架,高手自己可以写得很快,但不一定适合很多普通程序员一起合作开发与维护。所以有些过度简化的演进,比如完全抛弃XML纯用Annotation的ApplicationContext定义方式,SpringSide并没有使用。

如何基于SpringSide创建新的项目? JavaEE 参考示例 SpringSide 作者江南白衣专访

SpringSide也是利用Maven的Archetype插件来创建新项目的,在每次版本发布时都会把前面所说的QuickStart项目打包成一个模板项目。用户只要用标准的maven archetype指令,就可以基于QuickStart项目生成自己的项目。

SpringSide采用什么开源协议?对商用有什么限制? JavaEE 参考示例 SpringSide 作者江南白衣专访

用的是所知最开放的Apache License2,任何的Copy&Paste都是欢迎的。如果有哪个更开放的告诉我吧,因为实在对靠开源赚钱没有过任何想法。

有没有其他开发者参与贡献? JavaEE 参考示例 SpringSide 作者江南白衣专访

4.0这个大版本暂时只有我一个在主导。不过github真的是一个非常社交化的开源平台,没有了sourceforge、google code那种固定的开发团队的概念。现在谁都可以闯进SpringSide来,改它几行代码,然后向我发起一个Pull Request就可以了。题外话,像Nutz那样精细的贡献者记录,真是值得表扬又让人羡慕的事情。

SpringSide的发布周期?未来的发展方向? JavaEE 参考示例 SpringSide 作者江南白衣专访

项目坚持了六七年,四个大版本,期间服务器迁徙数次,也有过多次跳票的不良记录。所以很难说出一个固定的发布周期来。最近自己比较希望能做到与白天的项目一样,固定三周一个的迭代,但也并不总能如愿。希望大家能相信我的人品,项目或迟或早,总是会发布的……

至于未来的发展方向,一方面会继续做细JavaEE普通应用的演示,使它与一般的玩具型演示项目有更显眼的区别。一方面会展示更多互联网项目的新潮技术,如NoSQL、ZooKeeper等,毕竟这看起来更有趣。