用 Annotation 改造 Java 开发模式。
Annotation 已经出现很多年了,且使用日益广泛,最近讨论过一次对 Annotation 使用的取舍,整理做个记录。
Annotation 本质上像是另一类 Interface,通过 @interface 描述符也可以猜得出。
相比 interface 的优点是,它不仅可以用来描述 Type,还可用于 Field,Method,Parameter,Package ...
在实际使用中,Annotation 一般都用于实现复杂的“反射”和“配置”。
我曾经也对 Annotation 有一种保守的意见,认为过多的使用 Annoation 会降低Class的复用性,是一种“Bean的具体实现”侵入了“Class的内部设计”的行为,例如 Spring 基于 Annotation 的依赖注入实现,使得 Class 代码耦合了环境和容器,而此前 xml 配置方式因为和 Class 代码是分离的,没有侵入,从而保证了Class的灵活。
从无侵入的角度看 xml 更加灵活是对的,但实际生产力表现 Annotation 无疑具有更高的开发效率。实际上这里并不矛盾。
看真实的物理世界是怎样的?很明显,它本质上由一个个的对象组成,“类型”的概念只是人的意志抽象出来的产物。(这里可能涉及复杂的哲学分歧,不作深入讨论)
我们设计一个系统,就是用软件模型来模拟现实世界的活动,然而现实世界并不存在独立意义的 type,type 只是概念,存在于抽象中。我们设计系统也并不是在单纯设计 Class,实际上很多时候是在设计 Bean。
所以说,保证 Class 代码上的复用性不是必须的,并不是所有Class都被要求保留存在多个instance的可能,系统中运行的本来就是 Bean 实例,而且很多还都是单例。
以设计 Bean 实例的思想去考虑对 Annotation 的使用,更加符合现实模型,离真理更近一步。
当然,滥用 Annotation 或者 Bean 本身设计造成耦合侵入是另外一个回事,与此话题无关。
分享到:
相关推荐
### 用Annotation简化Java程序的开发 #### 一、引言 随着软件开发技术的不断发展,特别是Java语言的广泛应用,开发者面临着如何有效地管理和配置代码的问题。传统的做法是使用XML文件来配置程序的各种设置,但这种...
本文主要介绍了基于Annotation的Java单元测试框架,讨论了Annotation在Java EE中的应用、反射技术的使用和JUnit单元测试框架的结合,建立了一个自动化单元测试框架结构。 一、Annotation概述 Annotation是Java 5中...
Java-Annotation使用大全 Java-Annotation使用大全 Java-Annotation使用大全
Java Annotation 作为一种强大的元数据机制,已经在现代软件开发中扮演着越来越重要的角色。无论是框架设计还是日常编码,理解和灵活运用注解都能极大地提高开发效率和代码质量。随着 Java 技术的发展,我们可以期待...
Java注解(Java Annotation)是Java编程语言中的一个重要特性,它提供了一种元数据的方式,允许程序员在代码中嵌入...理解和熟练使用Java注解是Java开发中不可或缺的一部分,尤其在构建复杂、模块化的应用和框架时。
JDK中许多类和方法都使用了设计模式,这些模式的应用帮助实现了代码的高内聚、低耦合,提高了代码的可维护性和扩展性。下面介绍几种常见的设计模式及其在JDK中的应用实例: a) 抽象工厂模式(AbstractFactory) ...
如果你想知道java annotation是什么?你可以看看
Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是一种描述数据的数据,可以提供有关代码的附加信息,而这些信息并不直接影响代码的执行。在Java中,注解用于向编译器、JVM或...
Java 5引入的注解(Annotation)是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器、JVM或其他工具在编译时或运行时使用。注解可以用来简化代码,提高可维护性,并帮助工具进行静态分析。 1. ...
在运行时,我们可以使用Java的反射API来访问和处理这些注解。以下是如何获取`AnnotatedClass`上的`MyAnnotation`: ```java Class<AnnotatedClass> clazz = AnnotatedClass.class; MyAnnotation annotation = clazz...
1. **定义和使用**:从 JDK5.0 开始,Java 提供了定义和使用自定义 Annotation 的能力。这包括定义 Annotation 类型的语法、声明 Annotation 的语法,以及读取 Annotation 的 API。Annotation 不直接改变代码的执行...
Java SSH项目是基于三个主要框架——Struts、Spring和Hibernate构建的企业级Web应用程序。这个项目中,Hibernate作为ORM...Hibernate注解的使用简化了数据库配置,提高了开发效率,是现代Java开发中常见的技术栈选择。
Java annotation 什么是java annotation?annotation 的7种标注类型。nnotation提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、...
在Java 5.0引入后,注解已经成为Java开发中的一个重要组成部分。 **为什么使用Annotation?** 1. **减少模板代码**:通过使用注解,开发者可以避免编写大量重复的模板代码,例如在创建JAX-RPC Web服务时,可以使用...
《Java Annotation手册》 在Java编程语言中,注解(Annotation)是一种元数据,它提供了在编译时或运行时处理代码的一种方式。通过注解,开发者可以向编译器或JVM提供有关代码的附加信息,而这些信息通常不直接影响...
Java注解(JDK5)是Java编程语言中的一个重要特性,自Java 5版本开始引入。注解(Annotation)提供了一种元数据的形式,允许程序员在代码中嵌入额外的信息,这些信息...了解和掌握注解的使用对于现代Java开发至关重要。
通过上述示例中的JavaAnnotation压缩包,你可能包含了注解的使用示例、源码以及相关的博客文章。源码可以帮助你理解注解的实际应用,而博客文章可能深入解释了注解的工作原理和最佳实践。学习这些材料,将有助于你...
此外,还可以使用Java 8以后的元数据API(如`@Retention`、`@Target`)来控制Annotation的行为,如其在编译时、运行时的可见性以及作用域。 三、Annotation的生命周期 1. `@Retention`:此Annotation控制...