[Spring] Annotation(Lombok)

2024. 5. 20. 18:21·Spring

1. @GetMapping

  • 설명: HTTP GET 요청을 처리하는 메서드에 사용된다.
@GetMapping("/home")
public String home() {
    return "home";
}

 

 

기능: URL이 "/home"인 GET 요청을 처리한다. 일반적으로 데이터 조회에 사용된다.

 

2. @PostMapping

  • 설명: HTTP POST 요청을 처리하는 메서드에 사용된다.
@PostMapping("/submit")
public String submit(@RequestBody FormData data) {
    // 데이터 처리 로직
    return "result";
}

 

기능: URL이 "/submit"인 POST 요청을 처리한다. 주로 데이터 생성이나 서버로 데이터를 제출할 때 사용된다.

 

3. @RequestMapping

  • 설명: 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 처리할 수 있는 메서드 또는 클래스에 사용된다.
@RequestMapping(value = "/api", method = RequestMethod.GET)
public String api() {
    return "api";
}

 

기능: 특정 URL과 HTTP 메서드와 매핑된다. @GetMapping, @PostMapping 등의 특화된 어노테이션으로 대체될 수 있다.

 

4. @RequiredArgsConstructor

  • 설명: final 필드와 @NonNull 필드를 포함하는 생성자를 자동으로 생성한다.
@RequiredArgsConstructor
public class MyClass {
    private final String name;
    private final int age;
}

 

 

기능: 필요한 인자를 가지는 생성자를 생성하여 의존성 주입 등에 사용될 수 있다.

 

5. @Getter

  • 설명: 클래스의 모든 필드에 대해 getter 메서드를 자동으로 생성한다.
@Getter
public class MyClass {
    private String name;
    private int age;
}

 

 

기능: 각 필드에 대해 getName(), getAge()와 같은 getter 메서드를 생성한다.

 

6. @Setter

  • 설명: 클래스의 모든 필드에 대해 setter 메서드를 자동으로 생성한다.
@Setter
public class MyClass {
    private String name;
    private int age;
}

 

 

기능: 각 필드에 대해 setName(String name), setAge(int age)와 같은 setter 메서드를 생성한다.

 

7. @NonNull

  • 설명: 필드, 메서드 매개변수 또는 메서드 반환값이 null이 아니어야 함을 명시한다.
public void setName(@NonNull String name) {
    this.name = name;
}

 

 

기능: 컴파일러 수준에서 null 검사를 강화한다.

 

8. @NoArgsConstructor

  • 설명: 파라미터가 없는 기본 생성자를 자동으로 생성한다.
@NoArgsConstructor
public class MyClass {
    private String name;
    private int age;
}

 

 

기능: 기본 생성자를 자동으로 생성합니다. 초기화에 사용할 수 있다.

 

9. @AllArgsConstructor

  • 설명: 클래스의 모든 필드를 파라미터로 받는 생성자를 자동으로 생성한다.
@AllArgsConstructor
public class MyClass {
    private String name;
    private int age;
}

 

 

기능: 모든 필드를 초기화하는 생성자를 생성하여 객체 생성 시 모든 값을 설정할 수 있다.

 

10. @Data

  • 설명: @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode를 포함하는 복합 어노테이션이다.
@Data
public class MyClass {
    private String name;
    private int age;
}

 

 

기능: 클래스의 모든 필드에 대해 getter, setter, toString, equals, hashCode 메서드를 자동으로 생성한다.

 

11. @ToString

  • 설명: 클래스의 toString() 메서드를 자동으로 생성한다.
@ToString
public class MyClass {
    private String name;
    private int age;
}

 

 

기능: 객체의 문자열 표현을 제공하는 toString() 메서드를 생성한다.

 

12. @Value

  • 설명: 불변 객체(immutable object)를 만들기 위한 어노테이션으로, @Getter, @AllArgsConstructor, @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE), @ToString, @EqualsAndHashCode를 포함한다.
@Value
public class ImmutableClass {
    String name;
    int age;
}

 

 

기능: 모든 필드를 final로 만들고, 불변 객체를 생성합니다. 생성자, getter, toString, equals, hashCode 메서드를 자동으로 생성한다.

저작자표시 (새창열림)

'Spring' 카테고리의 다른 글

[Spring] web.xml 한글 필터  (0) 2024.05.20
[Spring] File Upload  (0) 2024.05.20
[Spring] Maven Project  (0) 2024.05.20
[Spring] MVC  (0) 2024.05.20
[Spring] Annotation  (2) 2023.10.18
'Spring' 카테고리의 다른 글
  • [Spring] File Upload
  • [Spring] Maven Project
  • [Spring] MVC
  • [Spring] Annotation
kwh_coding
kwh_coding
성장하는 괴물 성괴 김우형
  • kwh_coding
    코딩 일기
    kwh_coding
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • ERP Project
      • NAVER CLOUD Web DevOps
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
  • 블로그 메뉴

    • 홈
    • GitHub
    • Notion
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    js
    CORS
    django
    코테
    github
    Tomcat
    annotation
    RDBMS
    정보처리기사
    jsp
    git
    AdSP
    Python
    React
    eGov
    web
    node
    gitbash
    프로그래머스
    javascript
    Postman
    html
    Java
    spring
    코딩
    brycpt
    해시 암호화
    코딩테스트
    SQLD
    private network
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kwh_coding
[Spring] Annotation(Lombok)
상단으로

티스토리툴바