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
有幾種格式如下:
(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,因為它第一次出現。
@Queryparam:指定的是URL中的參數是以鍵值對的形式出現的,而在程序中 @QueryParam("from") int from則讀出URL中from的值,
例如:URL輸入為:users?from=100&to=200&orderBy=age&orderBy=name
@Pathparam:URL中只出現參數的值,不出現鍵值對
例如: /users/100