SpringBoot 相關(guān)注解
-
Controller
@Controller
表示這個(gè)一個(gè)控制器,像是一個(gè)容器,里面可以加入多個(gè)url映射健蕊,映射到指定的頁面菱阵。一般習(xí)慣于一個(gè)頁面對應(yīng)一個(gè)Controller,里面寫入那個(gè)頁面所有的url映射缩功。
@Controller
public class IndexController {
}
如果確定這個(gè)Controller內(nèi)返回的都是以json格式返回?cái)?shù)據(jù)而不是頁面的話晴及,可以直接使用@RestController
。
-
RequestMapping
表示這是一個(gè)url映射嫡锌,如果要映射多個(gè)url可以通過value屬性設(shè)置虑稼。一個(gè)Controller里面可以寫入多個(gè)mapping映射。
@Controller
public class IndexController {
@RequestMapping("/login") //表示訪問/login.html時(shí)會(huì)顯示Login.html,后綴名是默認(rèn)的势木,也可以在配置文件中去設(shè)置蛛倦。
public String login(){
return "Login";
}
//多映射的寫法
@RequestMapping(value = {"login.html","Login.html"})
public String login(){
return "Login";
}
}
@RequestMapping
不限制請求的方式,如果需要通過相同的url不同的請求方式來區(qū)分的話可以這樣寫mapping注解:
@Controller
public class IndexController {
@GetMapping("/login") //映射/login.html的get請求
public String login(){
return "Login";
}
@PostMapping("/login") //映射/login.html的post請求
public String login(){
return "Login";
}
}
除了post和get的外跟压,還有@DeleteMapping
胰蝠、@PutMapping
。
- RequestParam
@Controller
public class IndexController {
@GetMapping("/login") //映射/login.html的get請求
public String login(@RequestParam("username") String username){
return "Login";
}
@PostMapping("/login") //映射/login.html的post請求
public String login2(String username){
if(username == null){
return "Error";
}
return "Login";
}
}
?@RequestParam
用于指定請求要求的參數(shù)震蒋。兩個(gè)Login
方法雖然都有一個(gè)username
的參數(shù)要求茸塞,但是加了@RequestParam
注解的方法是強(qiáng)制要求的,如果沒有username
這個(gè)參數(shù)的話是會(huì)報(bào)錯(cuò)的;但是第二種方法則并不強(qiáng)制要求查剖,如果沒有username
也會(huì)正常執(zhí)行钾虐,不過如果后面要用他的值的話肯定還是會(huì)拋空指針異常的。
-
Configuration
@Configuration
表示這是一個(gè)配置笋庄。 -
Bean
@Bean
表示這是一個(gè)bean容器效扫。 -
Component
@Component
表示這是一個(gè)組件。 -
JsonProperty
@JsonProperty
用來指定對象屬性當(dāng)做json返回時(shí)所對應(yīng)的key的值直砂。一般標(biāo)注在get方法上面菌仁,例如:
class User {
private int id;
public User(int id){
this.id = id;
}
@JsonProperty("userId") //指定返回json數(shù)據(jù)時(shí)的key值
publica int getId(){
return id;
}
}
@RestController
public class IndexController {
@GetMapping("/user")
public User login(){
return new User(1);
}
//如果標(biāo)注的Controller注解那么需要加上一個(gè)@ResponseBody注解
@GetMapping("/user")
@ResponseBody
public User login(){
return new User(1);
}
}
這樣返回的結(jié)果將是{userId:1}
- 日期轉(zhuǎn)換
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//后臺(tái)轉(zhuǎn)前臺(tái)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //前臺(tái)轉(zhuǎn)后臺(tái)(獲取String轉(zhuǎn)成Date)
private Date commentTime;
@JsonFormat
用后臺(tái)(服務(wù)器端)轉(zhuǎn)前臺(tái),即一個(gè)Date
類型的數(shù)據(jù)需要返回出去静暂,那么SpringBoot
會(huì)自動(dòng)轉(zhuǎn)換成指定的格式的字符串然后返回回去济丘。
@DateTimeFormat
用于前臺(tái)轉(zhuǎn)后臺(tái)(服務(wù)器端),例如一個(gè)請求參數(shù)需要是Date
類型洽蛀,但是請求時(shí)傳的參數(shù)是字符串摹迷,這時(shí)SpringBoot
會(huì)自動(dòng)轉(zhuǎn)換成Date
類型。
-
屏蔽某些屬性
@JsonIgnore