1. @Annotation?
Annotation이란 사전적 의미에서는 주석이라는 뜻이다.자바에서 Annotation은 코드사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다.
즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다.
* meta data : 데이터를 위한 데이터
Annotation을 사용하면 코드량이 감소하고 유지보수하기 쉬우며, 생산성이 증가한다.
2. Spring의 대표적인 Annotation
1) @Component
개발자가 생성한 Class를 Spring의 Bean으로 등록할 때 사용하는 Annotation이다.
2) @RequestHeader
Request의 header값을 가져올 수 있으며, 해당 Annotation을 쓴 메소드의 파라미터에 사용한다
@Controller // 이 Class는 Controller 역할을 합니다
@RequestMapping("/user") // 이 Class는 /user로 들어오는 요청을 모두 처리합니다.
public class UserController {
@RequestMapping(method = RequestMethod.GET)
public String getUser(@RequestHeader(value="Accept-Language") String acceptLanguage) {
// GET method, /user 요청을 처리
}
}
3) @RequestParam
URL에 전달되는 파라미터를 메소드의 인자와 매칭시켜, 파라미터를 받아서 처리할 수 있는 Annotation이다.
- @RequestParam(name = "name")
파라미터 name을 지정하여 파라미터로 전달된 데이터들 중 지정한 이름의 데이터를 파싱한다. 매개변수로 지정한 변수의 타입이 String이 아닌 경우 자동으로 형변환한다.
@RequestMapping(value = "/login")
public String login(@RequestParam(name = "id") String id, @RequestParam(name = "pwd") String pwd) {
return "id: "+id+", pwd: "+pwd;
}
- @RequestParam
파라미터로 전달되는 name과 매개변수의 이름을 일치 시키면 name 속성을 지정하지 않아도 자동으로 데이터를 파싱하여 동일한 이름의 변수에 저장한다.
@RequestMapping(value = "/login")
public String login(@RequestParam String id, @RequestParam String pwd) {
return "id: "+id+", pwd: "+pwd;
}
- @RequestParam 생략
파라미터로 전달되는 name과 매개변수 이름이 일치하면 @RequestParam을 적어주지 않아도 자동으로 데이터를 파싱하여 동일한 이름의 변수에 저장한다.
@RequestMapping(value = "/login")
public String login(String id, String pwd) {
return "id: "+id+", pwd: "+pwd;
}
- 여러 파라미터 매핑하기
1. List, 배열 : 다중 값 매핑하기
@RequestMapping(value = "/login")
public String login(@RequestParam List<String> userids) {
return "user ids: "+ userids;
}
http://localhost:8080/login?ids=1,2,3
ids: [1, 2, 3]
2. Map : 모든 파라미터 매핑하기
@RequestMapping(value = "/login")
public String login(@RequestParam Map<String, String> allParams) {
return "allParams: "+allParams;
}
5) @Autowired
Spring Framework에서 Bean객체를 주입받기 위한 방법은 Autowired, 생성자, setter가 있다. Bean을 주입받기위하여 @Autowired를 사용한다. Spring Framework가 Class를 보고 Type에 맞게 Bean을 주입.
3. Lombok의 대표적인 Annotation과 역할
1) @AllArgsConstructor
Class 모든 필드 값을 파라미터로 받는 생성자를 추가
2) @NoArgsConstructor
Class 기본 생성자를 자동으로 추가해준다.
'TIL' 카테고리의 다른 글
| 240524 TIL (0) | 2024.05.27 |
|---|---|
| 240523 TIL (0) | 2024.05.24 |
| 240521 TIL : REST, REST API, RESTful (0) | 2024.05.22 |
| 240520 TIL (0) | 2024.05.21 |
| 240516 TIL (0) | 2024.05.16 |