关于Ioc框架的发展

最近利用空余时间在了解几个Java的发展。随着jdk1.5、1.6的普及,很多框架开始升级,比如spring 2.0、2.5、3.0全面支持Annotation特性,还有Google的Guice,最近还看到国内的一些朋友写的框架,比如Nutz,都在大量的使用Annotation,确实Annotation有很多价值。但我发现框架的很多所谓的新特性是使用Annotation来配置或者自动化装配Bean,比如: http://www.infoq.com/cn/articles/spring-2.5-part-1的介绍,整个内容都在讲自动装配,主动侦测,Spring自定义了@Autowired 一大堆的标注,似乎最好是anything is autowired 。我们觉得有2个问题:

   1. 当我们的程序使用了这些标注后,框架代码就侵入了我们的代码,Spring最大的优势---代码不侵入的诉求也不复存在了。同样,Google的Guice定义了@Inject的标注也就打击了他作为Ioc,DI框架的初衷。

   2. 当我们在java程序中大量使用标注来解决配置问题,(当然我也理解,大家都不喜欢配置文件搞得很大,很多,很复杂),这似乎一定程度上又回到了从前不用spring,不用配置的年代。因为尽管用Annotation,但是每次修改还是要重新编译和部署的。

对于第一点,我觉得,任何框架都应该首先支持Java平台的公共注解(Common Annotations for the Java Platform),因为它已经包括在Java EE5和Java SE 6中了。尽量不要在框架里重复定义,或者反过来说,Java平台的公共注解要更关注IOC框架的需要,多定义一些IOC框架需要的通用标注。让业务程序尽量不依赖框架。


不知大家怎么看这个的发展趋势?技术发展是螺旋式发展?欢迎讨论!

你可能感兴趣的:(spring,框架,bean,Google,IOC)