註解的解析

2021-10-02 23:54:16 字數 1068 閱讀 2857

通過之前的學習,可以學會自定義乙個註解。但是定義之後要怎麼使用?

註解本質上是乙個介面,所以在執行時,會動態地生成乙個實現了這個介面地類,並且將他例項化。

怎麼實現介面的方法?

在使用註解時,如果註解有沒有預設值的屬性,則一定要給屬性顯式的賦值。所以,使用時,每個註解的屬性都有確定的值。動態的實現這些方法時,只需要返回這些值即可

舉個例子:

自定義註解:

@retention(retentionpolicy.runtime)

@target(elementtype.type)

public @inte***ce testannotation

使用註解:

@testannotation(value = "hello")

public class test

動態生成類似於下面的類:

class testannotationimpl implenments testannotation

}

因為動態的生成了乙個註解的物件,所以,只要「拿到」這個物件,就可以呼叫這個物件(註解)的方法來獲取值。(例如上面呼叫value()方法就可以獲得值)

獲取註解物件,需要通過反射。只要拿到註解修飾的部分的反射物件,就可以拿到註解物件。

例如,上面的註解修飾的時test類,所以通過test.class物件就可以拿到註解物件。

testannotation annotation = test.class.getannotation(testannotation.class);
除了class物件,還可以通過method物件獲得修飾方法的註解物件,通過filed物件獲得修飾字段的註解物件。

上面已經說過,拿到的註解物件實現了註解中的方法,只要通過呼叫註解(介面)中的方法,就可以得到值。

@testannotation(value = "hello")

public class test

}

spring註解解析

component respository dao層 service service層 controller controller層 autowised 根據型別注入 如果載入set方法上面 那麼引數會根據型別進行注入 qualifer x autowised 注入時候如果有多個物件 可以再加上 q...

Column註解解析

功能 column註解用來標識實體類中屬性與資料表中字段的對應關係 語法 column columndefinition bigint 18 comment 公司id private long ouid columndefinition表示建立表時,該欄位建立的sql語句,一般用於通過entity生...

SpringMVC註解解析

作用 用於建立請求url和處理請求方法之間的對應關係 位置 屬性 例如 1.mvc命名空間引入 命名空間 xmlns context xsi schemalocation spring context.xsd 2.元件掃瞄 springmvc基於spring容器,所以在進行springmvc操作時,...