1. 程式人生 > >spring和springboot常用註解總結

spring和springboot常用註解總結

普通 map 組件 構造 sca service 提交 依賴 demo1

@RequestMapping

這個註解可以用於類和方法上,用於類上,表示父路徑,如類上是demo,方法上是/demo1,那麽訪問路徑就是demo/demo1

該註解有六個屬性:
params:指定request中必須包含某些參數值是,才讓該方法處理。
headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求。
value:指定請求的實際地址,指定的地址可以是URI Template 模式
method:指定請求的method類型, GET、POST、PUT、DELETE等
consumes:指定處理請求的提交內容類型(Content-Type),如application/json,text/html;
produces:指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回

@PathVariable

對應路徑上的變量,用在參數前,路徑上的變量名需和參數名稱一致

RequestMapping("demo/demo1/{name}")
public String say(@PathVariable String name){
  
}

@RequestParam

和以下代碼的作用相同

String name =request.getParameter("name ")。

@RequestBody

是指方法參數被綁定到HTTP請求Body上,前端就不能用表單的方式提交了,需要用json的方式提交。

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
//可以綁定自定義的對象類型
}

@ResponseBody

表示輸出的是json格式的數據。

@ModelAttribute

1.運用在參數上,會將客戶端傳遞過來的參數按名稱註入到指定對象中,並且會將這個對象自動加入ModelMap中,便於View層使用;

2.運用在方法上,會在每一個@RequestMapping標註的方法前執行,如果有返回值,則自動將該返回值加入到ModelMap中;

@Bean

相當於XML中的<bean></bean>,放在方法的上面,而不是類,意思是產生一個bean,並交給spring管理。

@Qualifier

當有多個同一類型的Bean時,可以用@Qualifier("name")來指定。與@Autowired配合使用

@Autowired

屬於Spring 的org.springframework.beans.factory.annotation包下,可用於為類的屬性、構造器、方法進行註值

@Resource

不屬於spring的註解,而是來自於JSR-250位於java.annotation包下,使用該annotation為目標bean指定協作者Bean。

@Resource的作用相當於@Autowired,均可標註在字段或屬性的setter方法上。

註意:

@Autowired註解默認按照類型裝配,如果容器中包含多個同一類型的Bean,那麽啟動容器時會報找不到指定類型bean的異常,解決辦法是結合@Qualified註解進行限定,指定註入的bean名稱。

@Resource如果沒有指定name屬性,並且按照默認的名稱仍然找不到依賴對象時, @Resource註解會回退到按類型裝配。但一旦指定了name屬性,就只能按名稱裝配了。

@Autowired註解進行裝配容易拋出異常,特別是裝配的bean類型有多個的時候,而解決的辦法是需要在增加@Qualitied進行限定。

組件類註解

@Component :標準一個普通的spring Bean類。
@Repository:標註一個DAO組件類。
@Service:標註一個業務邏輯組件類。
@Controller:標註一個控制器組件類。

@Component可以代替@Repository、@Service、@Controller,因為這三個註解是被@Component標註的。被註解的java類當做Bean實例,Bean實例的名稱默認是Bean類的首字母小寫,其他部分不變。@Service也可以自定義Bean名稱,但是必須是唯一的!

@SpringBootApplication

包含@Configuration、@EnableAutoConfiguration、@ComponentScan
通常用在啟動類上。

@ComponentScan

組件掃描。如果掃描到有@Component @Controller @Service等這些註解的類,則把這些類註冊為bean。

@Configuration

指出該類是 Bean 配置的信息源,相當於XML中的<beans></beans>,一般加在主類上。

@EnableAutoConfiguration

讓 Spring Boot 根據應用所聲明的依賴來對 Spring 框架進行自動配置,一般加在主類上。

@Profiles
Spring Profiles提供了一種隔離應用程序配置的方式,並讓這些配置只能在特定的環境下生效。
任何@Component或@Configuration都能被@Profile標記,從而限制加載它的時機。

@Configuration
@Profile("prod")
public class ProductionConfiguration {
    // ...
}

spring和springboot常用註解總結