1. 程式人生 > >Spring Boot幾個重要的註解

Spring Boot幾個重要的註解

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 時間格式化。