发表于: 2017-09-07 21:31:13
1 770
一、今日完成
今天没有做官网任务,主要时间和精力用来整理和准备Java小课堂《Annotation和XML两种配置的差别,为什么更喜欢使用Annotaion来配置Spring MVC?》,其主要内容如下:
一、背景介绍
Spring Application Framework的核心是IoC容器。其作用包括对应用程序的对象进行实例化、初始化、装配以及在对象的整个生命周期中提供其他Spring功能。构成应用程序主要部分且由Spring容器进行管理的对象被称为Bean或者POJO。为实例化Bean并指定如何对这些Bean进行装配,需要向Spring容器提供相关信息,所提供的信息被称为配置元数据(configuration metadata)。
二、知识剖析
Bean的元数据由以下四方面组成:
Ø Bean的实现类;
Ø Bean的属性信息,如数据源的连接数、用户名、密码等;
Ø Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配;
Ø Bean的行为配置,如生命周期及生命周期各个过程的回调函数等。
Spring1.0支持基于XML的配置,Spring2.0新增基于注解的配置,Spring3.0新增基于Java类配置,Spring4.0新增基于Groovy动态语言配置。
不管是XML还是注解,其本质都是为Spring容器提供Bean定义的信息。采用基于XML的配置,则Bean的定义信息和Bean实现类本身是分离的;而采用基于注解的配置文件,则Bean的定义信息通过在Bean实现类上标注注解实现。
三、常见问题
基于XML配置和基于注解配置这两种方法分别适用哪些情况?
四、解决方案
基于XML配置适用情况:
1. Bean实现类来源于第三方类库,如DataSource、JdbcTemplate等,因为无法在类中标注注解,所以通过XML配置方式较好;
2. 命名空间的配置,如aop、context等,只能采用基于XML的配置
基于注解配置适用情况:
Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置。
六、扩展思考
Spring容器独立于配置元数据格式,二者之间是解耦的,因此,改变配置方式对 Spring 的框架自身是透明的。
对于一个使用Spring开发的典型WEB应用程序而言,将配置元数据划分到不同文件,可以清晰反映出应用程序的层,不但便于管理,又可以同时由不同人员开发。
beans-web.xml或者ConfigurationForWeb 类定义WEB层/表现层中所操作的Bean;
beans-service.xml或者ConfigurationForService类定义服务层/业务层中所操作的Bean;
beans-dao.xml或者ConfigurationForDao类定义数据访问层中所操作的Bean。
七、参考资料
1. Mert Caliskan 、Kenan Sevindik 著. 王净 范园芳 田洪译. Spring 入门经典. 北京:清华大学出版社,2015.
2. 陈雄华 林开雄 文建国著. 精通Spring 4.X 企业应用开发实战. 北京:电子工业出版社,2017.
3.《Spring Framework Reference Documentation》
二、明日完成
1.学习LINUX系统vi编辑器、使用shell和文件操作等知识点;
2.结合今天小课堂内容,复习Spring MVC相关知识。
三、遇到问题
对Spring AOP功能比较陌生,小课堂讲解遇到关于“命名空间的配置,如aop、context等应该使用基于XML配置的方式来配置元数据”整个问题,师兄都没有给出解答;计划花时间对学习AOP,解决整个问题。
四、收获
借准备小课堂梳理知识点的机会,把配置元数据、如何管理Bean以及依赖注入方式理解更加深入,对于setter注入和构造函数注入两者的区别和用法掌握了。
评论