对于Struts和Spring两种MVC框架的比较
注意看到Main里面需要用到Demo的实例,因此,需要硬编码,即静态绑定(在编译期间就需要绑定),这绝对会增大后期维护工作量,至少每次扩展或者修改类以后需要重新编译已存在的iavabean组件。
Spring的依赖注入有机会实现动态绑定,原理很简单,用到了接口,接口是不能生成实例的,再加上iava的多态,接口可指向它的实现类。
所以试着为bean添加一个接口
}
注意看加重部分,用Spring提供的两个类,BeanFactory,和xmhxxxxx,直接读取配置文件。然后用getBean(id);取得bean,这个时候返回的对象是范型,比如Object obj=beanFac-tory.getBean(demo);将改后的写在下面,但没测试过。
这样就解耦了,实现无侵入式。不要忘记要将需要的bean在配置文件里面声明。
所有Spring这些特征使编写更干净、更易管理、并且更易于测试的代码。也为Spring中的各种子框架提供了基础。
4 结语
人们日益对开源框架的重视.使得很多项目的成本大大降低,并且投放使用以及维护速度都增加了。现在的开源框架都有很高的质量,提供了很好的文档,一些书籍让开发者做参考。即便如此,两大因素使得J2EE领域充满了不确定性:开源领域和J2EE“标准”的冲突和AOP的日益重要。
开源和标准之间的冲突表现在两个方面。一个是表现层,JSF的身后有Sun公司和其他的一些大公司,而在这个领域有Struts等开源产品与之竞争。在中间层,EJB3.0采用J2SE5.0的annotations实现了依赖注入(dependency iniection)的功能,但这个功能只是Spring的一个子集。
在这两个领域,开源产品都更加革新。JSP借鉴了ASP.NET,而Tapestry则采用了WebObjects的思想。
同样的,不知道EJB3.0为何要尝试着标准化依赖注入,即使这样会使之不可避免地丧失很多功能。EJB 3.0也要进入程序编写领域,而J2EE规范在这方面还没有涉足。
于此同时,AOP的重要性在J2EE社区猛增,在使用上,AOP也越来越受到开发者的青睐。像Spring、dynaop等被称作“带着双拐的AOP”实现,提升了AOP的知名度。而纯粹的AOP技术比如AspectJ,在将来的几年也会流行起来。
其次,JBoss通过JCP和EJB3.0保持一致,它极大地推动了AOP技术。但即使如此,JCP还没有转向AOP迹象。
下一代的J2EE规范将拥抱更简单的POJ0编程模型,就像Spring和Hibermate做的一样。J2EE开发者也注定要从“欺诈客户”转到以自己的编程经验开发。这次改变将受到大多数人的欢迎,不像以前那样每一个新规范发布后,最终都没有能很好的实现。
- 海思半导体大规模采用SpringSoft的验证与定制设计解决方案(02-17)
- SpringSoft发布新版Laker系统 提供OA数据库标(11-03)
- 建立比较器的外部滞回电压(11-28)
- 什么是逐次比较型ADC(模数转换器)(01-24)
- 什么是并行比较型ADC(模数转换器)(01-24)
- 比较器的合理选择(06-09)