Spring Boot幾個重要的註解
阿新 • • 發佈:2018-11-19
SpringBoot註解(annotations)
[email protected] = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan,其中@SpringBootConfiguration等同於Spring中的XML檔案,使用java程式碼可以檢查型別的安全性;@EnableAutoConfiguration 開啟自動配置;@ComponentScan 可以讓Spring Boot掃描到Configuration類,可以自動裝配一些Bean,@Component可配合CommandLineRunner使用,在程式啟動後執行一些基礎任務。
[email protected]、@RequestMapping是springMVC的註解,不是springboot特有的。
@RestController = @Controller + @ResponseBody,返回json等資料格式,不能返回jsp、html頁面,檢視直譯器無法解析jsp、html頁面。若想使試圖直譯器可以解析return的jsp、html頁面,則應該使用@Controller註解。
[email protected]:表示該方法的返回結果直接寫入HTTP response body中,一般在非同步獲取資料時使用。
[email protected] 提供路由資訊,返回值通常解析為跳轉路徑,負責URL到Controller中的具體函式的對映,任何“/”路徑的http請求都被對映到home方法。但是加上@responsebody後返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。
[email protected]自動匯入依賴的bean。
[email protected]獲取引數。
[email protected]解決巢狀外鏈問題。
[email protected]配合spring-boot-starter-data-rest使用。
[email protected] :用@Bean標註方法等價於XML中配置的bean。
[email protected]:用來匯入其他配置類。
[email protected]:用來載入xml配置檔案。
[email protected],指定欄位不返回,將ResponseBody中的Javabean返回前端過程中,忽略這個屬性,對序列化也有影響,在一些業務場景中,如為了資料安全密碼屬性是不能顯示出來的。對pwd屬性加上註解@JsonIgnore,如下所示,則在前端介面中是不會顯示出pwd的值。
public class User {
private int age;
@JsonIgnore
private String pwd;
@JsonProperty("account")
@JsonInclude(Include.NON_NULL)
private String phone;
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
private Date createTime;
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public User() {
super();
}
public User(int age, String pwd, String phone, Date createTime) {
super();
this.age = age;
this.pwd = pwd;
this.createTime = createTime;
}
}
[email protected]("account"),指定別名,將屬性的名稱序列化為另外一個名稱,如將phone的屬性序列化為account,則將註解@JsonProperty("account")新增到該屬性的前面,這個註解的主要目的是為了防止別人根據暴露出的key值推斷出資料庫表結構,暴露出的資訊越少越好。
[email protected](Include.NON_NULL),空欄位不放回,即實體類與json轉換時屬性值為null的不參與序列化。主要是防止前端顯示出null值,將@JsonInclude(Include.NON_NULL) 註解新增到該屬性前。
[email protected](pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8"),時間註解,將Jackson 時間格式化。