`
卒子99
  • 浏览: 75247 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

配置与注解优缺点理解

    博客分类:
  • Java
阅读更多
    使用XML做为配置文件在Java开发常见的模式,如spring,struts等,一大堆xml,最初使用的时候,感觉还好,因为大家都那样用的,就跟着用呗,肯定有好处。但现在开发多了,越来越觉得使用XML的配置相当臃肿,越看越烦。
    注解(annoation)是JDK5.0的一个重要feature,虽然有所了解,他们基本上没有使用过,其最主要的一个原因就是没有想到使用注解有什么好处。
    最近做了一个proxy工具,通过httpclient模拟用户提交,并且用于处理HTML元素,可以对某个元素删除、添加和修改。始终可以让用户在这个proxy站点内。
    在设计上最重要的一个思考:
    不修改目标应用的代码,就可以实现以上对元素处理的功能。
    所以,第一个反应用XML来描述一个元素,比如说:
<div class="a">
    <p>hello world</p>
</div


如果要删除这个元素,则是类似于下面一个流程:
1、定位到这个页面,通过URL
2、定位到这个结点,tag为div,class=a
3、动作为删除

这个例子看起来很简单,但是在实际运用中发现有两个问题
1、有很多同样的div(tag名字相同,属性值相同),实际上是很难定位到这个结点的。通常还是需要在这个div外面再套一个tag用来标识这个结点的唯一性。
2、描述文件会很冗长。在实际应用中,就是替换页头和页脚,删除其中几个段落,结果写出来的文件达到8k

    仔细思考后第一次感觉,这个用注解来代替xml描述就会非常简单,如上面那个例子,则可以简单的如下描述
<!--Remove-->
<div class="a">
    <p>hello world</p>
</div


    是不是发现这样很简单了许多,而且还可以随便修改页面,不需要重新启动就可以让发动生效。
   而最早的设计考虑不修改应用的代码,其实在实际应用中是非常困难的,从这一点也可以看出来,在架构设计中,实际的需求是相当重要的。另一个就是对于二八原则的理解,抓住大部分需求就行了。

总结:
    对于需要从外部描述一个系统,这种场景用xml等配置文件是最合适的了
    如果能从内部很简单的描述一个系统,那这个时候最好选择注解,可以减少对目标系统的描述。

不过杯具的就是要写一个注解的解析器,以达到配置处理的要求。

   

分享到:
评论

相关推荐

    xml和annotation的优缺点

    ### XML与Annotation的优缺点对比分析 #### 一、引言 随着软件开发技术的不断发展,配置文件在软件工程中的作用越来越重要。传统的XML配置文件和新兴的Java Annotation配置方式各有千秋,它们在实际应用中展现出...

    mybatis配置及优缺点.zip

    1. **学习曲线**:相比传统的JDBC,MyBatis的学习成本稍高,需要理解XML配置或注解的用法。 2. **不适合复杂事务**:虽然MyBatis支持事务,但在处理分布式事务时,相比成熟的事务管理框架(如Spring的声明式事务),...

    ssh框架优缺点

    ### SSH框架优缺点详解 SSH框架,即Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级架构模式。本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### ...

    SSH框架的优缺点

    2. **配置复杂**:虽然有XML和注解两种配置方式,但大量的配置文件可能会增加项目管理的复杂性。 **三、Hibernate** Hibernate是一个优秀的对象关系映射(ORM)工具,它简化了数据库操作。它的优点包括: 1. **简化...

    STRUTS2优缺点

    ### STRUTS2 优缺点分析 #### 一、STRUTS2 优点概述 **1. Action 实现灵活性:** - **STRUTS2 的 Action 设计更灵活:**与 STRUTS1 中 Action 必须继承自 `Action` 类不同,STRUTS2 允许 Action 作为 POJO(Plain...

    代理设计模式:静态代理和动态代理的理解、实现与区别(优缺点)与SpringAOP的3种配置方式案例工程代码

    2. **注解配置**:使用`@Aspect`注解定义切面,`@Before`、`@After`、`@Around`等注解定义通知,这种方式更简洁。 3. **Java配置**:通过Java类配置切面和通知,结合了XML和注解的优点,既具有灵活性又易于管理。 ...

    Spring事务优缺点及使用详解.docx

    【Spring 事务管理详解】 一、事务简介 事务是数据库操作的基本单位,它确保一组SQL语句要么全部成功...无论是使用注解还是AOP配置,都能有效地管理和协调事务,确保应用程序在面对复杂数据库操作时保持数据一致性。

    hibernate注解.rar

    四、注解配置的优缺点 4.1 优点 (1)简化配置:注解使得ORM配置更直观,减少了XML配置的工作量。 (2)可读性强:注解直接嵌入代码,便于理解实体和数据库之间的映射关系。 (3)易于维护:修改注解比修改XML配置...

    JAVA三大框架优缺点

    1. **配置繁琐:** Spring的配置文件较为复杂,尤其是在大型项目中,需要管理大量的XML或注解配置。 2. **学习成本高:** Spring的功能非常强大,但这也意味着初学者需要投入较多的时间来掌握其核心概念和技术细节...

    strut spring hibernate 优缺点

    ### Struts, Spring, Hibernate 三大框架的优缺点分析 #### Struts框架 **优点:** 1. **组件模块化与灵活性:** Struts框架强调组件的模块化设计,这使得开发者可以根据项目的不同需求灵活地选择和组合这些组件。...

    struts spring hibernate 优缺点分析.docx

    以下是这三个框架的详细优缺点分析: **Struts** Struts是一个开源的MVC框架,主要用于构建Web应用程序。它的主要优点包括: 1. **开源性**:Struts作为Apache基金会的项目,其源代码公开,开发者可以深入了解其...

    Java自定义注解md,学习代码

    总之,这个压缩包的内容涵盖了Java自定义注解的基础知识,以及与Java Web相关的Tomcat服务器、用户会话管理等内容,对于理解和实践Java后端开发非常有帮助。通过深入学习这些材料,可以提高对Java编程和Web应用开发...

    ### MyBatis动态SQL介绍说明、使用技巧和优缺点

    MyBatis作为一款出色的持久层框架,通过XML或注解的方式配置SQL语句,有效地实现了Java方法与SQL语句之间的映射。动态SQL是MyBatis的一项重要特性,它允许开发人员根据条件动态地生成SQL片段,从而实现灵活的数据库...

    s2sh框架整合学习之注解篇

    通过学习和分析这些示例,你可以深入理解S2SH框架整合中注解的使用方法和优势,以及如何将它们应用到实际项目中。 在实际开发中,使用注解可以使代码更加模块化,减少XML配置的维护成本,同时也提高了可读性和可...

    Spring 事务配置详解(多种配置方法)

    在Spring框架中,事务管理是核心功能之一,它允许开发者以声明式或...XML配置和注解方式各有优缺点,XML配置灵活且易于集中管理,而注解方式则简化了代码,提高了可读性。在实际开发中,通常结合使用,以达到最佳效果。

    spring基于task标签和通过xml配置实现任务的区别

    - 这种方式更适用于Java配置的Spring应用,因为它是基于Java的元数据驱动,与Java配置风格保持一致,易于理解和维护。 - 优点:代码和配置一体化,直观易懂,支持注解驱动的编程模型,适合简单的任务调度需求。 -...

    spring_day02_spring_

    4. **注解配置与XML配置的比较**:对比两种配置方式的优缺点,理解在什么情况下更适合使用注解配置或XML配置。 5. **无XML配置的应用**:探讨如何在没有XML配置的情况下构建Spring应用,尤其是在Spring Boot框架中...

    Spring事务配置的五种方式

    Spring 事务管理是其核心特性之一,用于确保在执行数据库操作时的一致性和...理解每种方式的工作原理和优缺点,可以帮助你更好地进行事务配置。Spring 的事务管理机制确保了数据的一致性,是构建企业级应用的重要基石。

    两个SSM类型的项目

    这两个项目对于初学者来说是非常有价值的资源,可以对比学习,理解两种配置方式的优缺点。注解配置使得代码更紧凑,减少了配置文件的维护工作,但可能让代码过于分散。而XML配置虽然繁琐,但在大型项目中可以更好地...

    SSH框架整合源码(包含声明和注解)

    这种方式的优点是配置清晰,易于阅读,但缺点是文件较多,维护起来可能较为繁琐。 - **注解配置**:使用Java注解可以在类或方法上直接声明其属性和行为,减少XML配置。例如,使用`@Service`, `@Repository`, `@...

Global site tag (gtag.js) - Google Analytics