1. 程式人生 > >Java常用的註解

Java常用的註解

JDK自帶註解

  • @Override  重寫, 標識覆蓋它的父類的方法
  • @Deprecated    已過期,表示方法是不被建議使用的
  • @Suppvisewarnings   壓制警告,抑制警告

元註解

@Target   表示該註解用於什麼地方,可取的值包括:

  • ElemenetType.CONSTRUCTOR       構造器宣告
  • ElemenetType.FIELD          域宣告(包括 enum 例項)
  • ElemenetType.LOCAL_VARIABLE     區域性變數宣告
  • ElemenetType.METHOD         方法宣告
  • ElemenetType.PACKAGE         包宣告
  • ElemenetType.PARAMETER       引數宣告
  • ElemenetType.TYPE          類,介面(包括註解型別)或enum宣告
  • ElementType.ANNOTATION_TYPE     註解

@Retention   表示在什麼級別儲存該註解資訊。可選的 RetentionPolicy 引數包括:

  • RetentionPolicy.SOURCE       註解將被編譯器丟棄
  • RetentionPolicy.CLASS        註解在class檔案中可用,但會被VM丟棄
  • RetentionPolicy.RUNTIME       JVM將在執行期也保留註釋,因此可以通過反射機制讀取註解的資訊。

@Documented   將此註解包含在 javadoc 中

@Inherited   允許子類繼承父類中的註解

常見第三方註解

@Repository:    用於標註資料訪問元件,即DAO元件

@Service:    用於標註業務層元件

@Transactional:    宣告這service所有方法都需要事務管理。每一個業務方法開始時都會開啟一個事務

@Controller:    控制層

@Component:    把該中立的類交給spring管理

@Autowired:    自動裝配,將bean容器裡的值自動注入到bean

@Path:      處理REST請求,介面路徑

@Method:    

常用的HTTP動詞有下面五個(括號裡是對應的SQL命令)。

  • GET(SELECT):從伺服器取出資源(一項或多項)。
  • POST(CREATE):在伺服器新建一個資源。
  • PUT(UPDATE):在伺服器更新資源(客戶端提供改變後的完整資源)。
  • PATCH(UPDATE):在伺服器更新資源(客戶端提供改變的屬性)。
  • DELETE(DELETE):從伺服器刪除資源。

還有兩個不常用的HTTP動詞。

  • HEAD:獲取資源的元資料。
  • OPTIONS:獲取資訊,關於資源的哪些屬性是客戶端可以改變的。

@Accept和@Content-Type

@Accept:    就表示介面要返回給客戶端的資料格式

@Content-Type:    表示客戶端傳送給伺服器端的資料格式。這個是寫REST介面時候定義的 

   正常如果伺服器沒定義Accept但是自己添加了的話會報404,沒找到對應介面。

@Produces   表示類或者方法返回的MIME資料型別

有幾種格式如下:

(1)@Produces("text/plain") 文字型別

(2)@Produces("text/html")  Html型別

(3)@Produces({"application/xml"}) Xml型別

(4)@Produces({ "application/json"}) Json型別

       可以一次註解兩種或多種的MIME型別,格式如:{"application/xml", "application/json"}這表示兩者都可以使用,但是選擇的時候一般會選擇前者,即application/xml,因為它第一次出現。

@Consumes    代表的是一個資源可以接受的 MIME 型別

@Queryparam與@Pathparam

@Queryparam:指定的是URL中的引數是以鍵值對的形式出現的,而在程式中 @QueryParam("from")  int from則讀出URL中from的值, 

例如:URL輸入為:users?from=100&to=200&orderBy=age&orderBy=name 

@Pathparam:URL中只出現引數的值,不出現鍵值對

例如: /users/100 

JAVA系統註解圖