1、概念
注解是哪些你插入到代码中,以便有工具可以对它们进行处理的标签。
工具可以在代码级别运作,也可以处理被编译器加入了注解信息的类文件。
注解在Java中被广泛使用,例如像Junit4 这样的测试工具,以及企业级技术(Java EE)
注解的语法和Java 一样,例如
@Test(timeout = 100) def testSomeFeature(){…..}
@Entity class Credentials{
@Id @BeanProperty var username:String = _
@BeanProperty var password:String = _
}
你可以对Scala 类使用Java 注解。上述示例中的注解来自Junit和JPA,而这两个Java框架并不知道我们用的是Scala。
你也可以用Scala注解,这些注解是Scala特有的,通常由Scala编译器或者编译器插件处理。(实现编译器插件并不是一个小工程,其不在本章节讨论)
Java 注解并不影响编译器如何将源码编译成字节码,它们仅仅是往字节码中添加数据,以便外部工具可以利用它们。而在Scala中,注解可以影响编译过程。举例来说@BeanProperty注解将触发getter和setter方法的生成
2、简单理解
注解就是标签。
标签是用来标记某些代码需要特殊处理的。
处理的手段可以在代码运行时操作,也可以在编译期操作。
3、运行期
sql 数据反射到Java bean里面去,有的时候字段名字或者大小写,不一样,使用注解,这个注解就是运行期
4、编译期
class Father{
}
class Dog extends Father{
@Override
public void log(){
……
}
}