1. 程式人生 > >springcloud中一些註解解釋

springcloud中一些註解解釋

@Data

自動增加包括get/set方法,tostring,equal,hashcode。

@Entity

對實體註釋,任何hibernate對映對想都要有這個註釋,指明這是一個實體bean。

@Table

宣告此物件對映到資料庫的資料表,通過他可以為實體指定表,目錄和schema的名字,該註釋不是必須的,如果沒有則系統使用預設值(實體的短類名)。

@Column

宣告該屬性與資料庫欄位的對映關係。

@ApiOperation(value = “介面說明”, httpMethod = “介面請求方式”, response = “介面返回引數型別”, notes = “介面釋出說明”;其他引數可參考原始碼;

 介面描述。

@ApiParam(required = “是否必須引數”, name = “引數名稱”, value = “引數具體描述”

實際專案中非常需要寫文件,提高Java服務端和Web前端以及移動端的對接效率。

Swagger是當前最好用的Restful API文件生成的開源專案,通過swagger-spring專案

實現了與SpingMVC框架的無縫整合功能,方便生成spring restful風格的介面文件,

同時swagger-ui還可以測試spring restful風格的介面功能。

@NoArgsConstructor : 生成一個無引數的構造方法,這個annotation在與其他的annotation配合起來使用的時候更加能凸顯出他的重要性,例如在使用hibernate這種框架的時候,如果有一個有引數的構造方法的時候,NoArgsConstructor會展示出他的作用。

生成無參構造方法

@AllArgsContructor:  會生成一個包含所有變數,同時如果變數使用了NotNull annotation , 會進行是否為空的校驗, 我們來看一下官方給出的一個例子:

import lombok.AccessLevel;

import lombok.RequiredArgsConstructor;

import lombok.AllArgsConstructor;

import lombok.NonNull;

@RequiredArgsConstructor(staticName = "of")

@AllArgsConstructor(access = AccessLevel.PROTECTED)

public class ConstructorExample<T> {

  private int x, y;

  @NonNull private T description;

  @NoArgsConstructor

  public static class NoArgsExample {

    @NonNull private String field;

  }

}

用java翻譯一下就是這個意思:

public class ConstructorExample<T> {

  private int x, y;

  @NonNull private T description;

  private ConstructorExample(T description) {

    if (description == null) throw new NullPointerException("description");

    this.description = description;

  }

  public static <T> ConstructorExample<T> of(T description) {

    return new ConstructorExample<T>(description);

  }

  @java.beans.ConstructorProperties({"x", "y", "description"})

  protected ConstructorExample(int x, int y, T description) {

    if (description == null) throw new NullPointerException("description");

    this.x = x;

    this.y = y;

    this.description = description;

  }

  public static class NoArgsExample {

    @NonNull private String field;

    public NoArgsExample() {

    }

  }

}

@EnableSwagger2

加了這個註解就可以在這個頁面裡面看見響應類下面的響應介面。

swagger的出現就是為了方便進行測試後臺的restful形式的介面,實現動態的更新,當我們在後臺的介面修改了後,swagger可以實現自動的更新,而不需要認為的維護這個介面進行測試。

如需詳細瞭解swagger可以檢視下面兩個連結:

http://www.cnblogs.com/h9527/p/5506956.html

@EnableCaching

開啟快取,完成一些簡單的快取功能。

@WebFilter:過濾器

@Componet:定義spring管理bean

@EnableScheduling:啟用定時任務

@Configuration

@Configuration標註在類上,相當於把該類作為spring的xml配置檔案中的<beans>,作用為:配置spring容器(應用上下文)

@Repository用於標註資料訪問元件,即DAO元件;可以標記在任何的類上,用來表明該類是用來執行與資料庫相關的操作(即dao物件),並支援自動處理資料庫操作產生的異常

@Component是通用註解,其他三個註解是這個註解的拓展,並且具有了特定的功能 
@Repository註解在持久層中,具有將資料庫操作丟擲的原生異常翻譯轉化為spring的持久層異常的功能。 
@Controller層是spring-mvc的註解,具有將請求進行轉發,重定向的功能。 
@Service層是
業務邏輯層註解,這個註解只是標註該類處於業務邏輯層。 

關於這三個註解的更多解釋,可檢視: