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