Spring Boot注解是一種元數(shù)據(jù)形式,可提供有關(guān)程序的數(shù)據(jù)。換句話說,注解用于提供有關(guān)程序的 補(bǔ)充信息。它不是我們開發(fā)的應(yīng)用程序的一部分。它對其注解的代碼的操作沒有直接影響。不會更改已編譯程序的操作。
在本節(jié)中,我們將討論一些重要的 Spring Boot注解,我們將在本教程的后面部分使用。
@Required: 它適用于 bean 設(shè)置方法。它指示必須在配置時使用必需的屬性填充帶注解的Bean,否則它將引發(fā)異常 BeanInitilizationException 。
示例
public class Machine { private Integer cost; @Required public void setCost(Integer cost) { this.cost = cost; } public Integer getCost() { return cost; } }
@Autowired: : Spring通過提供@Autowired注解來提供基于注解的自動裝配。它用于自動連接setter方法,實(shí)例變量和構(gòu)造函數(shù)上的spring bean。當(dāng)我們使用@Autowired批注時,spring容器通過匹配數(shù)據(jù)類型自動連接bean。
示例
@Component public class Customer { private Person person; @Autowired public Customer(Person person) { this.person=person; } }
@Configuration: : 它是一個類級別的注解。帶有@Configuration注解的類由Spring Containers用作bean定義的源。
示例
@Configuration public class Vehicle { @BeanVehicle engine() { return new Vehicle(); } }
@ComponentScan: : 當(dāng)我們要掃描軟件包中的bean時使用。它與注解@Configuration一起使用。我們還可以指定用于掃描Spring組件的基本軟件包。
示例
@ComponentScan(basePackages = "com.nhooo") @Configuration public class ScanComponent { // ... }
@Bean: 是方法級的注解。它是XML
示例
@Bean public BeanExample beanExample() { return new BeanExample (); }
@Component: 。它是一個類級別的注解。它用于將Java類標(biāo)記為Bean。在類路徑中找到了一個用 @Component 注解的Java類。 Spring框架將其拾取并在應(yīng)用程序上下文中將其配置為 Spring Bean 。
示例
@Component public class Student { ....... }
@Controller: @Controller是類級別的注解。它是 @Component 的專業(yè)化。它將一個類標(biāo)記為Web請求處理程序。它通常用于服務(wù)網(wǎng)頁。默認(rèn)情況下,它返回一個字符串,該字符串指示要重定向的路由。它通常與 @RequestMapping 注解一起使用。
示例
@Controller @RequestMapping("books") public class BooksController { @RequestMapping(value = "/{name}", method = RequestMethod.GET) public Employee getBooksByName() { return booksTemplate; } }
@Service: 也用于類級別。它告訴Spring該類包含 業(yè)務(wù)邏輯。
示例
package com.nhooo; @Service public class TestService { public void service1() { //business code } }
@Repository: 這是一個類級別的注解。該存儲庫是直接訪問數(shù)據(jù)庫的 DAO (數(shù)據(jù)訪問對象)。該存儲庫執(zhí)行與數(shù)據(jù)庫有關(guān)的所有操作。
package com.nhooo; @Repository public class TestRepository { public void delete() { //persistence code } }
@EnableAutoConfiguration: : 它自動配置類路徑中存在的bean,并將其配置為運(yùn)行方法。在Spring Boot 1.2.0發(fā)行版中減少了使用此批注,因?yàn)殚_發(fā)人員提供了該批注的代替方法,即 @SpringBootApplication 。 @SpringBootApplication: : 它是三個注解 @ EnableAutoConfiguration,@ ComponentScan,和 @Configuration 的組合。
@RequestMapping: 用于映射網(wǎng)絡(luò)請求。它具有許多可選元素,例如 consumes, header, method, name, params, path, produces和value。我們將其與類以及方法一起使用。
示例
@Controller public class BooksController { @RequestMapping("/computer-science/books") public String getAllBooks(Model model) { //application code return "bookList"; } }
@GetMapping: 它將 HTTP GET 請求映射到特定的處理程序方法。它用于創(chuàng)建提取的Web服務(wù)終結(jié)點(diǎn),而不是使用 @RequestMapping(method = RequestMethod.GET) @PostMapping 它將 HTTP POST 請求映射到特定的處理程序方法。它用于創(chuàng)建創(chuàng)建的Web服務(wù)終結(jié)點(diǎn),而不是使用: @RequestMapping(method = RequestMethod.POST) @PutMapping: 它將 HTTP PUT 請求映射到特定的處理程序方法。它用于創(chuàng)建創(chuàng)建或更新的Web服務(wù)終結(jié)點(diǎn),而不是使用: @RequestMapping(method = RequestMethod.PUT) @DeleteMapping: 它將 HTTP DELETE 請求映射到特定的處理程序方法。它用于創(chuàng)建刪除資源的Web服務(wù)終結(jié)點(diǎn)。使用它而不是使用: @RequestMapping(method = RequestMethod.DELETE) @PatchMapping: 它將 HTTP PATCH 請求映射到特定的處理程序方法。使用它代替使用: @RequestMapping(method = RequestMethod.PATCH) @RequestBody: 用于將HTTP請求與方法參數(shù)中的對象綁定。在內(nèi)部,它使用 HTTP MessageConverters 轉(zhuǎn)換請求的正文。當(dāng)我們用 @RequestBody注解方法參數(shù)時,Spring框架會將傳入的HTTP請求主體綁定到該參數(shù)。 @ResponseBody: 它將方法返回值綁定到響應(yīng)主體。它告訴Spring Boot Framework將返回的對象序列化為JSON和XML格式。 @PathVariable: 用于從URI中提取值。它最適合RESTful Web服務(wù),其中URL包含路徑變量。我們可以在一個方法中定義多個@PathVariable。 @RequestParam: 用于從URL提取查詢參數(shù)。也稱為查詢參數(shù)。它最適合Web應(yīng)用程序。如果URL中不存在查詢參數(shù),則可以指定默認(rèn)值。 @RequestHeader: 用于獲取有關(guān)HTTP請求標(biāo)頭的詳細(xì)信息。我們將此注解用作方法參數(shù)。注解的可選元素是名稱,必填,值,defaultValue。 對于標(biāo)題中的每個細(xì)節(jié),我們應(yīng)指定單獨(dú)的注解。我們可以在一種方法中多次使用它 @RestController: 可以將其視為 @Controller 和 @ResponseBody 注解的組合。 @RestController注解本身使用@ResponseBody注解進(jìn)行注解。無需使用@ResponseBody注解每個方法。 @RequestAttribute: 它將方法參數(shù)綁定到請求屬性。它提供了從控制器方法方便地訪問請求屬性的方法。借助@RequestAttribute批注,我們可以訪問服務(wù)器端填充的對象。