http://blog.csdn.net/heyutao007/article/details/5981555
元程序元素關聯任何信息和任何元數據的方法。
注解的分類
按運行機制分:
源碼注解
編譯時注解:JDK注解
運行時注解:@Autowired等
按照來源分:
JDK注解
第三方注解
自定義注解
元注解:注解的注解
JDK自帶注解
@Override
@Deprecated
@Suppresswarnings忽略警告
第三方注解
Spring:
@Autowired
對類成員變量、方法及構造函數進行標注,完成自動裝配的工作。
對成員變量使用 @Autowired來消除 set ,get方法。Spring 將直接采用 Java 反射機制對 Boss 中的 car 和 office 這兩個私有成員變量進行自動注入。
對構造函數用:@Autowired 將分別尋找和它們類型匹配的 Bean,將它們作為 Boss(Car car ,Office office) 的入參來創建 Boss Bean。
對方法用:@Autowired 將查找被標注的方法的入參類型的 Bean,并調用方法自動注入這些 Bean。
@Service
@Repository
自定義注解
- @interface
- 無參數,無異常拋出的方法
- 成員類型受限:原始類型、String、Class、Annotation、Enumeration
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description{
String desc();
String author();
int age() default 18;
}
ElementType.TYPE:作用域是類或接口
FIELD: 成員變量
- 使用時
@Description("the name method")
public String name(){
return null;
}
@Description(value="the name method",name="key")
public String name(){
return null;
}
注解的解析
通過反射獲取類、函數或成員上的運行時注解信息,從而實現動態控制程序運行的邏輯。