spring 스프링

@Annotation 스프링 자주 사용하는 어노테이션 정리

해니01_15 2023. 8. 23. 10:12

[@Annotation]

스프링은 어노테이션이라는 일종의 메타데이터를 사용하여 특별한 기능으로 코드를 구현할 수 있다. 어노테이션을 활용하여 Spring Framework는 해당 클래스가 어떤 역할인지 정하기도 하고, Bean을 주입하거나 자동으로 getter와 setter를 생성하기도 한다.

이렇게 어노테이션을 활용하면 코드량이 감소하고 유지보수가 쉬우며 생산성이 증가한다는 장점이 있다. 

 

 

[대표적인 Annotation] 

@Component 

개발자가 생성한 Class를 Bean으로 등록할 때 사용되는 어노테이션이다. Spring 은 해당 어노테이션을 보고 Bean으로 등록한다.  아래에 Bean에 관련한 자세한 설명이 있다! 

 

스프링 빈(Spring Bean)이란?

1. 스프링 빈(bean) Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라고 한다. 이전 포스팅에서 제어의 역전 (IOC, Inversion Of Control)에 대하여 간략하게 알아보았다. 제어의 역전 (IOC, Inversion Of Co

henniee.tistory.com

 

 

@Bean 

@Bean Annotation은 개발자가 제어가 불가능한 외부 라이브러리와 같은 것들을 Bean으로 만들 때 사용한다. 

 

@Controller

Spring에게 해당 Class가 Controller의 역할을 한다고 명시하기 위해 사용 하는 어노테이션이다. 

 

@RequestMapping

@RequestMapping(“/value")와 같은 형태로 작성하며, 요청 들어온 URI의 요청과 Annotation value 값이 일치하면 해당 클래스나 메소드가 실행된다. Controller 객체 안의 메서드와 클래스에 적용 가능하지만 Restfull 개발을 할 때에는 조금 더 세부적인 RequestMapping이 사용되며 그건 아래의 포스팅에서 확인할 수 있다. 

  • Class 단위에 사용하면 하위 메소드에 모두 적용된다. 
  • 메서드에 적용되면 해당 메서드에서 지정한 방식으로 URI를 처리한다.
@Controller
@RequestMapping("/board")
public class BoardController {

@RequestMapping(value = "/add", method = RequestMethod.POST)
	public String add(ModelMap map, BoardDto dto, HttpSession session ) {
    
    }
    
}

 

@ReaquestParam

URL에 전달되는 파라미터를 메소드의 인자와 매칭시켜, 파라미터를 받아서 처리할 수 있는 Annotation으로 아래와 같이 사용한다. Json 형식의 Body를 MessageConverter를 통해 Java 객체로 변환시킨다.

@PostMapping("")
	public Map join(MemberDto dto, @RequestParam(required = false) MultipartFile f) {
    }

 

@RequestBody
Body에 전달되는 데이터를 메소드의 인자와 매칭시켜, 데이터를 받아서 처리할 수 있는 Annotation으로 아래와 같이 사용한다. 클라이언트가 보내는 HTTP 요청 본문(JSON 및 XML 등)을 Java 오브젝트로 변환하여 사용한다. 

클라이언트가 body에 json or xml과 같은 형태로 형태로 값(주로 객체)을 전송하면, 해당 내용을 Java Object로 변환합니다.

@PostMapping("/editinfo")
	public Map<String, Object> editinfo(@RequestBody MemberDto dto) {
	}

 

[Lombok Annotation]

@Getter : Class 모든 필드의 Getter method를 생성해준다.

@Setter : Class 모든 필드의 Setter method를 생성해준다.

@ToString : Class 모든 필드의 toString method를 생성한다.

@NoArgsConstructor : Class 기본 생성자를 자동으로 추가해 준다

@AllArgsConstructor : Class 모든 필드 값을 파라미터로 받는 생성자를 추가한다.