概述
对于Spring来讲,为实现Bean的信息定义,提供了基于XML、基于注解、基于JAVA类、基于Groovy这4种选项,同事还允许各种配置方式复合共存。
Bean不同配置方式比较
Bean不同配置方式的使用场景
基于XML配置
- 1)Bean实现类来源于第三方类库,如DataSource,JdbcTemplate等,因无法在类中标注注解,通过XML配置方式较好;
- 2)命名空间的配置,如aop、context等,只能采用基于XML的配置
基于注解配置
Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置
基于Java类配置
基于Java类配置的优势在于可以通过代码方式控制Bean初始化的整体逻辑。所以如果实例化Bean的逻辑比较复杂,则比较适合用基于Java类配置的方式
基于Groovy的配置
基于Groovy DSL配置优势在于可以通过Groovy脚本灵活控制Bean初始化的过程, 如果bean的逻辑较为复杂,则比较适合使用Groovy DSL配置的方式。
总结
综上所述,我们一般采用XML配置DataSource、SessionFactory等资源Bean,在XML中利用aop 和 context等命名空间进行相关主题的配置,其他所有项目中开发的bean 都通过基于注解配置的方式进行配置,即这个项目采用“基于XML+基于注解”的配置方式,很少采用基于JAVA类的配置方式。