logo

스프링 부트 주석

Spring Boot Annotations는 프로그램에 대한 데이터를 제공하는 메타데이터 형식입니다. 즉, 주석은 다음을 제공하는 데 사용됩니다. 보충 프로그램에 대한 정보입니다. 이는 우리가 개발하는 애플리케이션의 일부가 아닙니다. 주석을 추가한 코드의 작동에 직접적인 영향을 미치지 않습니다. 컴파일된 프로그램의 동작은 변경되지 않습니다.

이 섹션에서는 몇 가지 중요한 사항에 대해 논의하겠습니다. 스프링 부트 주석 이 튜토리얼의 뒷부분에서 사용할 것입니다.

자바 정규식 $

핵심 Spring Framework 주석

@필수의: 이는 다음에 적용됩니다. 세터 방식. 이는 구성 시 필수 속성으로 주석이 달린 Bean을 채워야 함을 나타내며, 그렇지 않으면 예외가 발생합니다. BeanInitializationException .

 public class Machine { private Integer cost; @Required public void setCost(Integer cost) { this.cost = cost; } public Integer getCost() { return cost; } } 

@Autowired: Spring은 @Autowired 주석을 제공하여 주석 기반 자동 연결을 제공합니다. 이는 setter 메서드, 인스턴스 변수 및 생성자에서 Spring Bean을 자동 연결하는 데 사용됩니다. @Autowired 주석을 사용하면 스프링 컨테이너는 데이터 유형을 일치시켜 Bean을 자동 연결합니다.

 @Component public class Customer { private Person person; @Autowired public Customer(Person person) { this.person=person; } } 

@구성: 클래스 수준 주석입니다. Spring 컨테이너가 Bean 정의의 소스로 사용하는 @Configuration 주석이 달린 클래스입니다.

 @Configuration public class Vehicle { @BeanVehicle engine() { return new Vehicle(); } } 

@ComponentScan: 패키지에서 빈을 스캔하려고 할 때 사용됩니다. @Configuration 주석과 함께 사용됩니다. Spring 컴포넌트를 검색할 기본 패키지를 지정할 수도 있습니다.

 @ComponentScan(basePackages = 'com.javatpoint') @Configuration public class ScanComponent { // ... } 

@콩: 메소드 수준 주석입니다. 이는 XML 태그의 대안입니다. Spring Container가 관리할 Bean을 생성하는 방법을 알려준다.

 @Bean public BeanExample beanExample() { return new BeanExample (); } 

Spring Framework 스테레오타입 주석

@요소: 클래스 수준 주석입니다. Java 클래스를 Bean으로 표시하는 데 사용됩니다. 주석이 달린 Java 클래스 @요소 클래스 경로 중에 발견되었습니다. Spring Framework는 이를 선택하여 애플리케이션 컨텍스트에서 다음과 같이 구성합니다. 봄콩 .

URI 대 URL

 @Component public class Student { ....... } 

@제어 장치: @Controller는 클래스 수준 주석입니다. 전문 분야입니다 @요소 . 클래스를 웹 요청 처리기로 표시합니다. 웹페이지를 제공하는 데 자주 사용됩니다. 기본적으로 리디렉션할 경로를 나타내는 문자열을 반환합니다. 주로 다음과 같이 사용됩니다. @RequestMapping 주석.

 @Controller @RequestMapping('books') public class BooksController { @RequestMapping(value = '/{name}', method = RequestMethod.GET) public Employee getBooksByName() { return booksTemplate; } } 

@서비스: 클래스 수준에서도 사용됩니다. 이는 클래스에 다음이 포함되어 있음을 Spring에 알려줍니다. 비즈니스 로직 .

 package com.javatpoint; @Service public class TestService { public void service1() { //business code } } 

@저장소: 클래스 수준 주석입니다. 저장소는 DAO (데이터 액세스 개체) 데이터베이스에 직접 액세스합니다. 저장소는 데이터베이스와 관련된 모든 작업을 수행합니다.

 package com.javatpoint; @Repository public class TestRepository { public void delete() { //persistence code } } 

스프링 부트 주석

    @EnableAutoConfiguration:클래스 경로에 있는 Bean을 자동 구성하고 메소드를 실행하도록 구성합니다. 개발자가 주석의 대안을 제공했기 때문에 Spring Boot 1.2.0 릴리스에서는 이 주석의 사용이 줄어듭니다. @SpringBootApplication .@SpringBoot애플리케이션:세 가지 주석의 조합입니다. @EnableAutoConfiguration, @ComponentScan, 그리고 @구성 .

Spring MVC 및 REST 주석

    @RequestMapping:지도를 작성하는 데 사용됩니다. 웹 요청 . 다음과 같은 많은 선택적 요소가 있습니다. 소비, 헤더, 메소드, 이름, 매개변수, 경로, 생성 , 그리고 . 우리는 이를 클래스 및 메소드와 함께 사용합니다.

 @Controller public class BooksController { @RequestMapping('/computer-science/books') public String getAllBooks(Model model) { //application code return 'bookList'; } 
    @GetMapping:이는 다음을 매핑합니다. HTTP GET 특정 핸들러 메소드에 대한 요청. 웹 서비스 엔드포인트를 생성하는 데 사용됩니다. 가져오기 다음을 사용하는 대신 사용됩니다. @RequestMapping(메서드 = RequestMethod.GET) @PostMapping:이는 다음을 매핑합니다. HTTP 포스트 특정 핸들러 메소드에 대한 요청. 웹 서비스 엔드포인트를 생성하는 데 사용됩니다. 창조하다 다음을 사용하는 대신 사용됩니다. @RequestMapping(메서드 = RequestMethod.POST) @PutMapping:이는 다음을 매핑합니다. HTTP PUT 특정 핸들러 메소드에 대한 요청. 웹 서비스 엔드포인트를 생성하는 데 사용됩니다. 창조하다 또는 업데이트 다음을 사용하는 대신 사용됩니다. @RequestMapping(메서드 = RequestMethod.PUT) @DeleteMapping:이는 다음을 매핑합니다. HTTP 삭제 특정 핸들러 메소드에 대한 요청. 웹 서비스 엔드포인트를 생성하는 데 사용됩니다. 삭제하다 자원. 다음을 사용하는 대신 사용됩니다. @RequestMapping(메소드 = RequestMethod.DELETE) @PatchMapping:이는 다음을 매핑합니다. HTTP 패치 특정 핸들러 메소드에 대한 요청. 다음을 사용하는 대신 사용됩니다. @RequestMapping(메소드 = RequestMethod.PATCH) @RequestBody:그것은 익숙하다 묶다 메소드 매개변수에 객체가 포함된 HTTP 요청입니다. 내부적으로는 HTTP 메시지 변환기 요청 본문을 변환합니다. 메소드 매개변수에 주석을 달면 @요청바디, Spring 프레임워크는 들어오는 HTTP 요청 본문을 해당 매개변수에 바인딩합니다.@ResponseBody:메서드 반환 값을 응답 본문에 바인딩합니다. 이는 Spring Boot Framework에게 객체 반환을 JSON 및 XML 형식으로 직렬화하도록 지시합니다.@PathVariable:URI에서 값을 추출하는 데 사용됩니다. URL에 경로 변수가 포함되어 있는 RESTful 웹 서비스에 가장 적합합니다. 하나의 메소드에 여러 개의 @PathVariable을 정의할 수 있습니다.@RequestParam:URL에서 쿼리 매개변수를 추출하는 데 사용됩니다. 그것은 또한 쿼리 매개변수 . 웹 애플리케이션에 가장 적합합니다. 쿼리 매개변수가 URL에 없으면 기본값을 지정할 수 있습니다.@요청헤더:HTTP 요청 헤더에 대한 세부 정보를 가져오는 데 사용됩니다. 우리는 이 주석을 다음과 같이 사용합니다. 메소드 매개변수 . 주석의 선택적 요소는 다음과 같습니다. 이름, 필수, 값, defaultValue. 헤더의 각 세부정보에 대해 별도의 주석을 지정해야 합니다. 한 메서드에서 여러 번 사용할 수 있습니다.@RestController:의 조합이라고 볼 수 있습니다. @제어 장치 그리고 @ResponseBody 주석 . @RestController 주석 자체에는 @ResponseBody 주석이 추가됩니다. @ResponseBody를 사용하여 각 메서드에 주석을 달 필요가 없습니다.@RequestAttribute:메소드 매개변수를 요청 속성에 바인딩합니다. 컨트롤러 메서드에서 요청 속성에 편리하게 액세스할 수 있습니다. @RequestAttribute 주석의 도움으로 서버 측에 채워진 객체에 액세스할 수 있습니다.

참고: 실제 예제와 함께 RESTful 웹 서비스 튜토리얼에서 위의 모든 주석을 사용했습니다.