Spring Framework很好。2004年初,我买了一本Rod Johnson的《J2EE Development Without EJB》,其中的理念和方法真是令人大开眼界,非常崇拜罗强生同志。
后来这些年,虽然我大部分工作跟物联网相关,但也断断续续用Java做一些Web应用开发。估摸着和诸位一样,基本上就没离开过Spring,从1.0到6.0,从XML到注解,从单纯的Framework到Boot。也没什么特别的理由,就是简单,顺手,习惯了。
但是一个必须承认的事实是:Spring全家桶变得越来越臃肿。当然这也不是我考虑的事情,我只是用它做点配套工具挣点钱而已,没精力搞别的。
再后来,去教书了,有比较多的时间思考一些形而上的问题,比如:Java生态系统里不应该只有一个Spring,打开浏览器一搜“java”出来的都是Spring,这是不健康的。恰好上课的需要,就琢磨着自己做一个更简单的更好用的出来。我没有挑战或者攻击Spring的意思,只是觉得,多一种选择有何不可?软件世界里,本来就该百花齐放。
所以,先从依赖注入开始,这就是whale这个项目的背景。遵循Rod Johnson和Bob Lee提出的JSR330规范(还是离不开罗强生同志),做了极少量扩展。我在想,要不要兼容JSR299,就是Hibernate的作者Gavin King提出的那一套。思考之后决定放弃,遵循单纯的Java EE/Jakarta EE,把简单易用做到极致,跟Spring-IOC和Google Guice的体验,都不一样。
whale之上还有web,data等组件,我把它另起了一个项目叫dragonfly(我的第一份工作的公司名字)。容我之后再慢慢介绍:Java Web Development Without Spring。