一直以來對注解僅限於會用,而不知其所以然。
大概的,只知道注解是需要定義,並需要一個解釋該注解的類。僅此而已。
認識:
注解自1.5出現。
注解本質上就是接口,但為了區別,才使用@interface。
注解是與類、接口、枚舉平行的概念。同類都默認繼承自Object一樣,注解默認都繼承自Annotation(接口)。
注解的功能與其定義無關,而與其解釋有關。
注解的功能:生成文檔、分析代碼、編譯檢查。
解析:
注解的解析需要利用反射進行操作。確切的說,是獲取類或者方法等地方的注解,再根據注解或者注解的參數進行一定的操作。
例如 java.lang.reflect.Method,就有 getAnnotation(Class<?> clazz)、getParameterAnnotations() 等方法。
應該說,注解可能出現的所有位置都有對應的反射類,這些反射類又有相應的獲取注解的方法。
使用:
注解可以和aop結合起來使用,從而簡潔的做到諸如記錄信息等操作。后面再介紹。
詳見我的 利用Spring AOP和自定義注解實現日志功能 。