软件设计风格 之 注解(Annotation)、配置文件、xml 的比较
2017-06-26 20:30
344 查看
本质上,三者都是信息的载体,或者说向程序传递信息的方式!
那么说道传递,就涉及到主体、客体两方,也就是“谁”要把“什么”传递给“谁”!
2 开发人员把类的元信息传递给Classloader,进而由注解处理器去处理;比如Spring框架中的注解,@Component,@Controller等等,在bean加载的过程中,会由Spring实现的相应“注解处理器”去使用;
注意,注解一般是由开发人员配置;
类的注解信息直接跟相关对象耦合,在类加载的时候写入类的元模型中,在其他类与该类进行交互时,会读取这些信息,执行不同的逻辑。
配置文件一般由用户去配置,会根据环境动态设置;
对不同的类,有不同的配置内容,都需要遵循结构化的规则,有专门的解析器去解析这些xml文件,然后根据内容去配置特定的对象!
xml与配置文件的不同,是它可以承载结构化的信息,能体现层次性和关系!
理论上,我们也可以用一个txt格式的文件,去存储bean配置信息,自己去实现该文件的解释器,并把提取出来的信息传递给BeanFactory,这样的txt文件其实就是定制化了!xml格式是规范了的,解释器是通用的,所以大家就直接使用xml好了。
另外,json文件也可以作为配置文件,与xml互有优劣,可以根据需求选择!
那么说道传递,就涉及到主体、客体两方,也就是“谁”要把“什么”传递给“谁”!
注解:
1 开发人员把编译信息传递给编译器;比如@Override、@Deprecated2 开发人员把类的元信息传递给Classloader,进而由注解处理器去处理;比如Spring框架中的注解,@Component,@Controller等等,在bean加载的过程中,会由Spring实现的相应“注解处理器”去使用;
注意,注解一般是由开发人员配置;
类的注解信息直接跟相关对象耦合,在类加载的时候写入类的元模型中,在其他类与该类进行交互时,会读取这些信息,执行不同的逻辑。
配置文件
配置文件,一般是用来配置环境信息,参数信息,给运行中的程序使用,它自己有遵循特定的格式,使用它的程序去负责解析并使用!配置文件一般由用户去配置,会根据环境动态设置;
xml
xml文件,可以使用的场合比较多,比如bean.xml文件,就是给Spring的BeanFactory使用的,也可以用注解来实现,有注解处理器将信息转给BeanFactory来进行bean的创建。对不同的类,有不同的配置内容,都需要遵循结构化的规则,有专门的解析器去解析这些xml文件,然后根据内容去配置特定的对象!
xml与配置文件的不同,是它可以承载结构化的信息,能体现层次性和关系!
理论上,我们也可以用一个txt格式的文件,去存储bean配置信息,自己去实现该文件的解释器,并把提取出来的信息传递给BeanFactory,这样的txt文件其实就是定制化了!xml格式是规范了的,解释器是通用的,所以大家就直接使用xml好了。
另外,json文件也可以作为配置文件,与xml互有优劣,可以根据需求选择!
相关文章推荐
- Spring框架 注解annotation和配置文件混合使用(生成对象与属性注入) xml配置文件没有提示解决
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
- Spring 在 xml配置文件或annotation注解中运用Spring EL
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明
- Annotation的优缺点-和配置文件比较
- 一个配置比较全的log4j.xml文件
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明)
- 比较完整的Struts-config.xml配置文件
- Spring 声明式事务管理 Annotation配置 xml文件
- 比较完整的Struts-config.xml配置文件
- 我的source insight下的配置文件,配置风格像vim下desert,比较舒服的风格
- 基于注解的Spring MVC(所需jar包,web.xml配置,Spring文件配置,@Controller,@RequestMapping,@RequestParam,model填参,EL取值)
- Hibernate映射文件配置(hbm.xml和注解方式)
- 典型的Spring的applicationcontext.xml配置文件以及注解事物配置(转)
- Spring的注解配置和XML配置的比较
- Spring配置文件applicationContext.xml(3)开启事务和注解
- 【spring】让spring的注解和xml配置文件变得优雅,最常用的注解
- spring 注解机制和XML配置机制之间的比较