`

谈谈程序开发中,关于“零配置”和“有配置”的看法

 
阅读更多

本人是做Java开发的,在程序开发中会经常使用到OpenSource开源框架,这些框架大多都灵活、简单、易用、方便。而且开源框架一般会提供一些基本的配置,如我们常用的框架就有Hibernate要配置对象实体到数据库的映射;Spring要配置bean的管理及其对象、属性的注入;Struts要配置Action对象和返回的资源路径;MyBatis要配置CRUD(增删改查)的相关SQL语句。这些配置你不能省略,必须得有,没有程序也不会自动添加。我们也是极可能的简化这些配置,不管怎么样简化但这些配置是不能省略,虽然这些框架给我们开发程序都提供了很大方面上的便利。

但有时候你是否有纠结这么样的一个问题:到底是用XML配置?还是用Annotation注解配置?或是用XML和Annotation混合配置?

首先看看两种配置的优缺点比较

XML它是无可代替的超文本标记语言,可读性、传输性好,它还具有一下优点:
1、可读性、传输性好:XML可扩展标记语言,最大的优势在于开发者能够为软件量身定制适用的标记,使代码可读性大大提升。
2、灵活性、易用性、扩展性、移植性好:利用XML配置能使软件更具扩展性。如Spring将class间的依赖配置在XML中,最大限度地提升应用的可扩展性。同样,如果是基于接口注入方式,可以随便切换接口实现类进行注入即可。
3、验证机制:具有成熟的验证机制确保程序正确性。利用Schema或DTD可以对XML的正确性进行验证,避免了非法的配置导致应用程序出错。
4、修改配置而无需变动现有程序、无需重新编译。

虽然XML有如此多的好处,但它也不是万能的,XML也有自身的缺点:
1、开发友好性支持:需要解析工具或类库的支持。如果你的XML配置需要用到XML的提示或是解析编译,需要用到Schema或DTD进行验证。
2、性能影响:解析XML势必会影响应用程序性能,占用系统资源。至少你会用到一些解析XML的技术去解析节点元素内容。
3、维护性高:配置文件过多导致管理变得困难。
4、编译期无法对其配置项的正确性进行验证,或要查错只能在运行期。如Spring Bean配置了一个错误的类路径class。
5、IDE 无法验证配置项的正确性无能为力。如Spring注入一个错误的对象或属性。
6、查错变得困难。往往配置的一个手误导致莫名其妙的错误。
7、开发人员不得不同时维护代码和配置文件,开发效率变得低下。
8、配置项与代码间存在潜规则,改变了任何一方都有可能影响另外一方。

让我们来看看Annotation的优点
1、保存在class文件中,降低维护成本。
2、无需工具支持,无需解析。
3、编译期即可验证正确性,查错变得容易,虽然有部分错误需要在运行期间才能看到。
4、配置简单、简约,提升开发效率。

同样Annotation也不是万能的,它也有很多缺点
1、若要对配置项进行修改,不得不修改Java文件,重新编译打包应用。
2、配置项编码在Java文件中,可扩展性差、移植性性低。

那到底用什么样的配置呢,在这里我谈谈我个人的看法:
1、在开发期间我们用Annotation注解,这样在一定程度上不仅可以省去对XML配置文件的维护,而且大大的提高了开发效率,缩短了开发周期。
2、开发后期,项目功能完成,我们可以将Annotation配置转换为XML配置,禁用Annotation即可。这样做的理由是如果项目上线,我们需要修改相关代码的配置,直接改XML、properties配置文件即可。这样就不需要开发人员找到相应的代码修改源代码、重新编译打包发布。而xml的配置是可以直接修改的,不需要重新编译,只需重启下你的服务器即可。

如果这样是不是即利用到框架给我们提供的Annotation注解,也利用到了XML配置。充分的发挥了开源框架给我们提供的技术应用。

3、混合模式,Annotation和XML相互运用。需要动态配置、后期经常性修改的就用XML配置,如果是不怎么修改的就用Annotation。或许这种混合模式更适合我们,你觉得呢?O(∩_∩)O~

 

转自:http://blog.csdn.net/ibm_hoojo/article/details/8132013

分享到:
评论

相关推荐

    Java开发环境配置

    在Java开发环境中,配置是至关重要的步骤,特别是在使用集成...在IDE中创建和配置项目,以及安装和配置相关的插件,如Spring和Struts,是开发Java Web应用的基础。理解这些步骤对于任何Java开发者来说都是至关重要的。

    Opengl开发包及配置方法

    值得一提的是,随着Microsoft公司在Windows NT和最新的Windows 95中提供了OpenGL标准及OpenGL三维图形加速卡的推出,OpenGL将在微机中有广泛地应用,同时也为广大用户提供了在微机上使用以前只能在高性能图形工作站...

    谈谈我对攻读计算机研究生的看法

    "谈谈我对攻读计算机研究生的看法" 本文讨论了攻读计算机研究生的看法,强调了计算机学院的重要性和软件学院的不足之处。作者认为,攻读计算机研究生的目的是为了提高自己的理论水平和实力,而不是为了拿到一个学历...

    御剑配置文件:11MB大数据配置+平常使用小数据配置

    在IT领域,尤其是在服务器管理和大数据处理中,正确的配置文件设置是至关重要的。"御剑配置文件:11MB大数据配置+平常使用小数据配置"这个主题涵盖了两种不同场景下的配置,即大数据处理环境和日常小数据操作环境。...

    轮播图和自定义组件,微信小程序开发,商城

    关于微信小程序的基础架构,它是由一系列JSON配置文件、JavaScript文件、WXML结构文件和WXSS样式文件组成的。例如,`app.js`是小程序的全局配置文件,用于定义小程序的启动、全局变量、页面间的通讯等;`app.json`是...

    java常用软件配置说明

    本文将详细讲解Java开发环境中的几个关键组件的安装与配置,包括Eclipse IDE、MySQL数据库、JBuilder、Java Development Kit (JDK)、Tomcat服务器以及Visual Studio .NET。 首先,我们来谈谈Eclipse,它是一款流行...

    实验一 Java开发环境与开发工具.zip_JAVA 环境配置

    总之,Java开发环境的配置和开发工具的使用是Java编程的基础。从安装JDK、配置环境变量,到选择合适的IDE,再到学习版本控制、构建工具、测试框架以及日志管理,每个环节都是成为合格Java开发者所必需的技能。希望这...

    该来的总会来,谈谈微信小程序这次升级.pdf

    微信小程序自发布以来就受到广泛关注,它不仅极大地便利了用户的日常生活,也给商家和开发者提供了一个新的市场渠道和开发平台。随着小程序的发展,它不断进行功能和性能的优化升级,以适应市场和用户的需求。本次...

    谈谈软件开发的那些事儿

    在软件开发领域,随着时间的推移,问题和挑战也在不断演变。从早期的小型系统到如今的大型企业级...通过持续学习和适应,开发者可以在这个不断变化的领域中找到自己的“加州旅馆”,为软件开发带来新的洞见和解决方案。

    中低端网络存储产品配置实例

    本篇文章将详细讲解中低端网络存储产品的配置实例,特别是IX1000型号的初始化配置,以及RAID阵列和物理资源的典型配置。同时,我们还将探讨SAN(Storage Area Network)的配置。 首先,让我们从IX1000的初始配置...

    ORACLE数据库安装配置说明

    总之,Oracle数据库的安装配置是一项细致的工作,需要遵循一定的流程,并且PL/SQL Developer作为强大的辅助工具,能够极大地提升数据库管理工作和开发效率。在实际操作中,还应注意数据库的安全性、性能优化和日常...

    结合当前的形势-谈谈你对我国小学数学教育的看法.pdf

    当前形势下,我们国家的小学数学教育已经取得了长足的进步,但是仍有许多值得我们深思和改进的地方。首先,我们可以看到,在我国教育体系中,小学数学教育一直占据着举足轻重的地位。它不仅关系到学生基础学科能力的...

    配置文件操作类封装及智能指针实现

    在IT行业中,尤其是在软件开发领域,配置文件是不可或缺的一部分,它们用于存储应用程序的设置和参数,使得程序可以根据用户的需求或环境进行个性化配置。本主题主要关注如何封装配置文件操作类以及利用智能指针来...

    易语言内存配置项[线程安全、高效读写、防溢出]

    在易语言中,内存管理是非常关键的一个环节,因为良好的内存配置能够确保程序运行的效率、稳定性和安全性。本文将详细讨论易语言内存配置中的线程安全、高效读写以及防溢出策略。 首先,我们来谈谈线程安全。在多...

    谈谈我对转基因食品的看法文.pdf

    谈谈我对转基因食品的看法文.pdf

    Creo3.0M010配置文件(含快捷键)

    Creo 3.0 M010是一款强大的三维建模软件,广泛应用于产品设计和工程领域。...通过深入理解配置文件的结构和作用,以及定制个性化的快捷键,用户能够更好地驾驭这款强大的设计工具,实现更高效的产品开发。

    eclipse笔记_itselfizg_配置_Eclipse开发工具_maven_Eclipse_

    【Eclipse开发工具配置与Maven集成】 Eclipse是一款广泛使用的...记住,不断学习和优化你的开发工具配置,是提升开发效率的关键。在"eclipse笔记"中,你可能找到了作者的经验分享,这对于初学者来说是非常宝贵的资源。

    谈谈分页插件的配置与使用

    分页插件的配置与使用 在本文中,我们将讨论Mybatis Plus框架中的分页插件PageHelper的配置与使用。首先,我们需要在pom文件中引入Mybatis-...使用PageHelper可以非常方便地实现分页查询,提高了开发效率和查询性能。

    Java环境变量配置

    Java环境变量配置是Java开发和运行的基础步骤,它涉及到JDK(Java Development Kit)的安装、Tomcat服务器的配置以及操作系统中的环境变量设置。这里我们将深入探讨这些知识点,帮助你理解如何有效地搭建Java开发...

    LIUNX CENTOS6.5 PHP环境配置

    CentOS 6.5的系统环境配置和维护主要依托于命令行操作,对系统管理员的技术能力有一定要求。此外,CentOS 6.5对PHP和Nginx的支持也是基于其源代码的编译和安装过程。 接着,我们要了解PHP。PHP是一种广泛使用的开源...

Global site tag (gtag.js) - Google Analytics