分享人:张庆东
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
9.鸣谢
Spring1.0支持基于XML的配置,Spring2.0新增基于注解的配置,Spring3.0新增基于Java类配置, Spring4.0新增基于Groovy动态语言配置。
我们学习spring的第一个domo通常是使用XML配置的,而现在我们使用Spring和SpringMVC更多的是采用Annotation的方式。而在网上对于XML和Annotation哪个好用各有说法。那么二者之间有什么区别呢?
不管是XML还是注解,其本质都是为Spring容器提供Bean定义的信息。采用基于XML的配置, 则Bean的定义信息和Bean实现类本身是分离的;而采用基于注解的配置文件,则Bean的定义信息通过在Bean实现类上标注注解实现。
Spring Application Framework的核心是IoC容器。 其作用包括对应用程序的对象进行实例化、初始化、装配以及在对象的整个生命周期中提供其他Spring功能。 构成应用程序主要部分且由Spring容器进行管理的对象被称为Bean或者POJO。 为实例化Bean并指定如何对这些Bean进行装配,需要向Spring容器提供相关信息, 所提供的信息被称为配置元数据(configuration metadata)。
Bean的元数据由以下四方面组成:
Bean的实现类;
Bean的属性信息,如数据源的连接数、用户名、密码等;
Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配;
Bean的行为配置,如生命周期及生命周期各个过程的回调函数等。
1.基于XML配置和基于注解配置这两种方法分别适用哪些情况?
2.回到本次小课堂的题目,为什么SpringMVC更倾向于使用注解配置?
1.基于XML配置和基于注解配置这两种方法分别适用哪些情况?
从客观情况上看
基于XML配置适用情况:
1.Bean实现类来源于第三方类库,如DataSource、JdbcTemplate等,因为无法在类中标注注解,所以通过XML配置方式较好;
2.命名空间的配置,如aop、context等,只能采用基于XML的配置.
基于注解配置适用情况:
Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置。
从主观情况上看
XML的优点:
1. XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。
2. 在处理大的业务量的时候,用XML配置应该更加好一些。因为XML更加清晰的表明了各个对象之间的关系,各个业务类之间的调用。同时spring的相关配置也能一目了然。
缺点:
配置文件读取和解析需要花费一定的时间,配置文件过多的时候难以管理,无法对配置的正确性进行校验,增加了测试难度。
Annotation的优点:
1. 在class文件中,可以降低维护成本,annotation的配置机制很明显简单
2. 不需要第三方的解析工具,利用java反射技术就可以完成任务
3. 编辑期可以验证正确性,差错变得容易
4. 提高开发效率
缺点:
1. 如果需要对于annotation进行修改,那么要重新编译整个工程
2. 业务类之间的关系不如XML配置那样容易把握。
3. 如果在程序中Annotation比较多,直接影响代码质量,对于代码的简洁度有一定的影响。
2.回到本次小课堂的题目,为什么SpringMVC更倾向于使用注解配置?
1. SpringMVC框架给出了专用的几个注解,使其层次更加分明
2. MVC层次较为简单,而url映射也十分简单,哪个网址出错可以立即找到其映射类。
我们前面看到的基于java的配置是什么?
1.博客http://blog.sina.com.cn/s/blog_451f596201014z4k.html
2.陈雄华 林开雄 文建国著. 精通Spring 4.X 企业应用开发实战. 北京:电子工业出版社,2017.
今天的分享就到这里啦,欢迎大家提问和探讨!
感谢甘乐师兄!此次小课堂在他的小课堂基础上完成!