欢迎来到天天文库
浏览记录
ID:17410551
大小:32.07 KB
页数:17页
时间:2018-08-31
《spring中注解配置与xml配置分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Spring中注解配置与xml配置分析从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,开发人员对注解(Annotation)的态度也是萝卜青菜各有所爱,个人认为注解可以大大简化配置,提高开发速度,同时也不能完全取代XML配置方式,XML方式更加灵活,并且发展的相对成熟,这种配置方式为大多数Spring开发者熟悉;注解方式使用起来非常简洁,但是尚处于发展阶段,XML配置文件和注解(Annotation)可以相互配合使用。注解其实也没什么神秘的,和XML配置文件类似都是一种配置的
2、方式而已,只不过利用JDK的反射机制,在编译时或者运行时动态获取所配置的信息而已,注解本身只是个标识,注解的真正意义在于通过注解标识获取注解所在对象的信息以及注解中配置的信息。Spring的注解方式只是简化了XML配置文件,可以在读入Bean定义资源时可以动态扫描给定的路径,在解析和依赖注入时,XML方式配置的Bean,Spring需要解析XML文件,注解方式配置的Bean,Spring需要通过JDK的反射机制获取注解配置的信息。虽然2.0版本发布以来,Spring陆续提供了十多个注解,但是提供的这些注解只是为了在某些情况下
3、简化XML的配置,并非要取代XML配置方式。这一点可以从SpringIoC容器的初始化类可以看出:ApplicationContext接口的最常用的实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,以及面向Portlet的XmlPortletApplicationContext和面向web的XmlWebApplicationContext,它们都是面向XML的。Spring3.0新增了另外两个实现类:AnnotationConfigAppli
4、cationContext和AnnotationConfigWebApplicationContext。从名字便可以看出,它们是为注解而生,直接依赖于注解作为容器配置信息来源的IoC容器初始化类。由于AnnotationConfigWebApplicationContext是AnnotationConfigApplicationContext的web版本,其用法与后者相比几乎没有什么差别使用注解方式时,必须在spring配置文件的schema中添加注解的命名空间如下:xmlns:context="http://www.spr
5、ingframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd是否有了这些IOC注释,我们就可以完全摒除原来XML配置的方式呢?答案是否定的。有以下几点原因:1)注释配置不一定在先天上优于XML配置。如果Bean的依赖关系是固定的,(如Service使用了哪几个DAO类),这种配置信息不会在部署时发生调整,那么注释配置优于XML配置;反之如果这种依赖关系会在部署时发生调整,XML配置显然又优
6、于注释配置,因为注释是对Java源代码的调整,您需要重新改写源代码并重新编译才可以实施调整。2)如果Bean不是自己编写的类(如JdbcTemplate、SessionFactoryBean等),注释配置将无法实施,此时XML配置是唯一可用的方式。3)注释配置往往是类级别的,而XML配置则可以表现得更加灵活。比如相比于@Transaction事务注释,使用aop/tx命名空间的事务配置更加灵活和简单。所以在实现应用中,我们往往需要同时使用注释配置和XML配置,对于类级别且不会发生变动的配置可以优先考虑注释配置;而对于那些第三
7、方类以及容易发生调整的配置则应优先考虑使用XML配置。Spring会在具体实施Bean创建和Bean注入之前将这两种配置方式的元信息融合在一起。定义配置文件中使用的参数定义文件:在后面的配置中就可以使用类似:这样的变量来引用属性参数了=====================================
8、================================SpringIoC容器对于类级别的注解和类内部的注解分以下两种处理策略:(1).类级别的注解:如@Component、@Repository、@Controller、@Service以及WebSerivce和JavaEE6的@
此文档下载收益归作者所有