>  기사  >  Java  >  Spring Boot Rest에 대한 일반적인 프레임워크 주석은 무엇입니까?

Spring Boot Rest에 대한 일반적인 프레임워크 주석은 무엇입니까?

王林
王林앞으로
2023-05-11 17:22:061246검색

Spring Boot Rest를 시작하기 위한 전제 조건

가장 중요한 것은 Spring 컨테이너 또는 IOC입니다. 이 외에도 Java Annotation에 대한 기본 지식이 있어야 합니다. Spring Boot 애플리케이션은 주석으로 가득 차 있기 때문입니다. 마지막으로 REST의 개념, 최소한 기본 개념을 명확히 해야 합니다. 예를 들어 GET, POST, PUT, DELETE 및 요청 본문과 응답, 헤더 등이 있습니다.

Spring 초기화 프로그램에서 Spring Boot 프로젝트 만들기

Spring Boot의 가장 좋은 점은 시작하기 위한 웹 애플리케이션이 있다는 것입니다. 몇 가지 양식 필드와 버튼을 클릭하기만 하면 시작 파일이 준비됩니다. 여기에는 폼이 포함됩니다. 필요한 모든 종속성을 포함하는 xml입니다. Spring 초기화 프로그램(https://start.spring.io/)으로 가세요. 아래 스크린샷과 같이 적절한 데이터를 입력하세요. 그런 다음 오른쪽 상단 모서리에 있는 종속성 추가 버튼을 클릭합니다. 웹을 입력하고 선택합니다. 또한 log와 Pojo에 Lombok을 추가하겠습니다.

Spring Boot Rest에 대한 일반적인 프레임워크 주석은 무엇입니까?

완료되면 생성 버튼을 클릭하기만 하면 해당 파일이 포함된 zip 파일(pom.xml)이 다운로드됩니다. 압축을 풀고 IDE에서 엽니다. IntelliJ IDEA를 사용하겠습니다. 이 IDE는 다양한 기능을 활용하여 작업 효율성을 높이는 데 도움이 됩니다. IDE에 일반적으로 사용되는 플러그인

Spring Boot 주석

전체 Spring Boot는 주석에 의존합니다. 다양한 요구 사항과 절차에 대한 다양한 참고 사항이 있습니다. 나머지 섹션에는 4~5개의 주요 음표가 있습니다. 하나씩 살펴보고 예제에 적용해 보겠습니다. @RestController 주석은

@RestController

클래스에서 사용됩니다. 클래스를 Rest의 컨트롤러로 정의합니다. 이는 ResponseBy 조합을 추가하는 컨트롤러의 RESTful 버전입니다. 이렇게 하면 별도의 ResponseBy 주석이 필요 없이 응답이 자동으로 JSON, XML 또는 정의된 응답 유형으로 변환됩니다. @RestController注释。它将类定义为Rest的控制器。这是一个RESTful版本的控制器,添加了ResponseBy的组合。这样,您的响应就会自动转换为JSON、XML或任何已定义的响应类型,而无需单独使用ResponseBy注释。

@RestController
public class ArticleRestController {}

其余的注释在@RestController类下使用。

@RequestMapping

用于将特定端点映射到函数或方法。这有助于定义端点的路径、方法、响应类型、请求类型等。

@RequestMapping(value = "/articles", method = RequestMethod.GET,  produces = "application/json")
public List<Article> getArticles() { }

在上面的示例中,值表示它映射到的路径。例如,localhost:8080/articles。方法类型是GET,它生成“application/json”作为响应(不过,这是默认值,您可以跳过它)。

@RequestParam

URL中的查询参数,即?key=value&key1=value1@RequestParam注释获取。这用于函数的参数。它有各种选项,如requireddefaultValue等。然后将查询参数加载到指定的参数中。

@RequestMapping(value = "/article", method = RequestMethod.GET)
public Article getArticleByName(
   @RequestParam(value = "articleName", required = true) String articleName
) {}

在上面的例子中,如果我们调用URL GET localhost/article?articleName=springboot,将在articleName参数中加载“springboot”。我已经把reuired=true,所以如果我们不传递articleName,它将向用户抛出一个错误。

@PathVariable

有没有想过,在不传递查询参数的情况下,服务器如何知道要加载哪篇文章?看看这篇文章的网址 post URL不包含查询参数,而是一个普通的斜杠分隔字符串。服务器在PathVariable的帮助下读取它,它看起来是这样的,/article/{articleslaug}。替换{articleSlug}的任何字符串都将被视为PathVariable

@RequestMapping(value = "/article/{articleSlug}", method = RequestMethod.GET)
public Article getArticle(@PathVariable("articleSlug") String articleSlug) {}

请记住,{articleSlug}RequestMappingPathVariable中应该是相同的(没有{})。如果不匹配,则无法加载。

@RequestBody

对于POST或PUT方法,您不会通过URL获取所有数据,对吗?这些方法有一个适当的请求主体。RequestBody注释有助于将给定的请求正文自动映射到参数。主要是JSON到POJO。

@RequestMapping(value = "/article", method = RequestMethod.POST)
public Article createArticle(@RequestBody NewArticlePojo newArticle){}

请求主体将自动映射到NewArticlePojo类,并基于键填充字段。

REST方法的特定注释

在上面的解释中,您一定已经看到我使用特定的方法编写了RequestMapping。但这太多余了。为了解决这个问题,Spring Boot提供了预定义的方法映射。这些只是@RequestMapping的扩展。

@GetMapping

@GetMapping用于将RequestMapping替换为method=RequestMethod。获取参数。现在通过查看,我们知道这是一个GET请求。

@PostMapping和@PutMapping

PostMapping是用method=RequestMethod替换RequestMapping。类似地,PutMapping将用method=RequestMethod替换RequestMethod.PUT

@DeleteMapping

DeleteMapping用method=RequestMethod替换RequestMethod.DELETErrreee

나머지 주석은 @RestController 클래스에서 사용됩니다. 🎜🎜@RequestMapping🎜🎜은 특정 엔드포인트를 함수나 메서드에 매핑하는 데 사용됩니다. 이는 엔드포인트의 경로, 메서드, 응답 유형, 요청 유형 등을 정의하는 데 도움이 됩니다. 🎜rrreee🎜위의 예에서 값은 매핑되는 경로를 나타냅니다. 예를 들어 localhost:8080/articles입니다. 메서드 유형은 GET이며, "application/json"을 응답으로 생성합니다(단, 이것이 기본값이므로 건너뛸 수 있습니다). 🎜🎜@RequestParam🎜🎜URL의 쿼리 매개변수, 즉 ? key=value&key1=value1@RequestParam 주석으로 획득됩니다. 이는 함수 인수에 사용됩니다. required, defaultValue 등과 같은 다양한 옵션이 있습니다. 그런 다음 쿼리 매개변수를 지정된 매개변수에 로드합니다. 🎜rrreee🎜위의 예에서 URL을 호출하면 GET localhost/article? ArticleName=springboot, "springboot"가 articleName 매개변수에 로드됩니다. reuired=true를 입력했기 때문에 articleName을 전달하지 않으면 사용자에게 오류가 발생합니다. 🎜🎜@PathVariable🎜🎜서버가 쿼리 매개변수를 전달하지 않고 어떤 기사를 로드할지 어떻게 알 수 있는지 궁금하신가요? 이 게시물의 URL을 살펴보세요. 게시물 URL에는 쿼리 매개변수가 포함되어 있지 않지만 일반 슬래시로 구분된 문자열입니다. 서버는 PathVariable의 도움으로 이를 읽고 /article/{articleslaug}와 같이 보입니다. {articleSlug}를 대체하는 모든 문자열은 PathVariable로 처리됩니다. 🎜rrreee🎜 {articleSlug}RequestMappingPathVariable에서 동일해야 한다는 점을 기억하세요({} 제외). ). 일치하지 않으면 로드되지 않습니다. 🎜🎜@RequestBody🎜🎜POST나 PUT 방식의 경우 URL을 통해 모든 데이터를 얻을 수는 없겠죠? 이러한 메서드에는 적절한 요청 본문이 있습니다. RequestBody 주석은 지정된 요청 본문을 매개변수에 자동으로 매핑하는 데 도움이 됩니다. 주로 JSON에서 POJO로. 🎜rrreee🎜요청 본문은 자동으로 NewArticlePojo 클래스에 매핑되고 필드는 키에 따라 채워집니다. 🎜🎜REST 메소드에 대한 특정 주석🎜🎜위 설명에서 특정 메소드를 사용하여 RequestMapping을 작성했다는 것을 보셨을 것입니다. 그러나 이것은 너무 중복됩니다. 이 문제를 해결하기 위해 Spring Boot는 미리 정의된 메서드 매핑을 제공합니다. 이는 @RequestMapping의 확장일 뿐입니다. 🎜🎜@GetMapping🎜🎜@GetMappingRequestMappingmethod=RequestMethod로 바꾸는 데 사용됩니다. 매개변수를 가져옵니다. 이제 이를 살펴보면 이것이 GET 요청이라는 것을 알 수 있습니다. 🎜🎜@PostMapping 및 @PutMapping🎜🎜PostMappingRequestMappingmethod=RequestMethod로 대체합니다. 마찬가지로 PutMappingRequestMethod.PUTmethod=RequestMethod🎜🎜@DeleteMapping🎜🎜DeleteMapping을 method=RequestMethod로 대체합니다. > code>RequestMethod.DELETE 바꾸기🎜

위 내용은 Spring Boot Rest에 대한 일반적인 프레임워크 주석은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제