简介
Spring全家桶广泛应用在企业应用开发中,为广大程序员解决了不少问题。但发展至今,spring已经变得越来越臃肿。 其庞大的规模让开发者很难此吃透,其极高的复杂多导致一旦出现问题调查很困难。
SmileFamily旨在甩掉Spring的历史包袱,利用近年新的技术打造一套灵活、简单、透明的开发框架。
灵活性
SpringIoC框架属于静态注入框架。使用Spring,所有的Bean定义无论是通过Xml还在是注解,都必须在应用启动前定义好。无法根据业务需求动态添加或删除。 Spring Bean具有传染性,一个对象如果依赖某一个Spring托管的Bean,那么自身也必须被托管。这种传染性的后果是几乎所有的对象都被spring托管, 导致设计模式固化,不能根据业务需求采取最合适的设计方案。
SmileIoC框架支持动态注入,可根据业务需求动态创建或注销Bean。SmileIoC不会限制设计者手脚,而是协助设计者。
简单性
Spring或者说整个java世界都存在过度设计的问题。仿佛一个东西不引入几个模式,不足以体现设计能力,仿佛没有几个接口、 工厂就不会使用java。这实际上已经违背了Rod Johnson不预想开发的**。
Smile强调设计的直接性,如果没有充足的理由就不引入过度的模式。
透明性
Spring等多数java框架设计复杂,代码庞大,在设计时并未把让使用者阅读、理解当作一个设计目标。 这导致了一旦使用中出现问题很难通过源码查找。整个框架对使用者相当于一个黑盒。
Smile把让使用者理解当作重要设计目标,Smile鼓励使用者在使用中发现问题后阅读和debug框架源码。Smile相当与一个白盒。
设计文档
架构Smile家族包括:
- SmileCore----SmileIoC容器
- SmileWebFramework----Web MVC开发框架
- SmileBoot----all-in-one的开发框架
- SmileTemplate----简单server端模版语言
Todo List
- 事件的支持
- 模块化支持
- Bean的导入导出
- 模块的封装形式
- @AliasFor的支持
- Bean别名的支持
- Schedule的支持
- 拦截器/装饰器的支持
- yml/json配置支持
- 重新抽象接口,稳定接口
- 文档
- 推广PPT
- 设计文档
- Getting started
- User manuals
- SmileTemplate完善
- 对JDBC/JPA等的封装
- vert.x/异步方式支持
此分支采用aspectj实现