[개발] Spring boot

[필수] 스프링부트(Spring Boot) 필수 어노테이션 정리

  • -
반응형

 

Spring Boot에서 필수적으로 알아야 하는 어노테이션

1. @SpringBootApplication

설명: Spring Boot 애플리케이션의 시작점에 사용되는 어노테이션입니다. @Configuration, @EnableAutoConfiguration, @ComponentScan을 포함하는 복합 어노테이션입니다.

사용 위치: 메인 클래스에 선언


@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 

 

 

 

 

 

 

2. @RestController

설명: 컨트롤러를 정의하며, 반환값을 JSON 형태로 변환하여 클라이언트에 전달합니다. @Controller@ResponseBody를 합친 역할을 합니다.

사용 위치: 컨트롤러 클래스에 선언


@RestController
public class HelloController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

 

 

 

 

 

 

3. HTTP 메서드 매핑 어노테이션

  • @GetMapping: GET 요청을 처리
  • @PostMapping: POST 요청을 처리
  • @PutMapping: PUT 요청을 처리
  • @DeleteMapping: DELETE 요청을 처리

@RestController
public class ApiController {
    @GetMapping("/get")
    public String getMethod() {
        return "GET Method";
    }

    @PostMapping("/post")
    public String postMethod() {
        return "POST Method";
    }
}

 

 

 

 

 

 

4. @RequestParam

설명: HTTP 요청 파라미터를 메서드 매개변수로 매핑합니다.


@GetMapping("/greet")
public String greet(@RequestParam String name) {
    return "Hello, " + name;
}

 

 

 

 

 

 

 

 

5. @PathVariable

설명: URL 경로 변수 값을 메서드 매개변수로 매핑합니다.


@GetMapping("/user/{id}")
public String getUser(@PathVariable int id) {
    return "User ID: " + id;
}

 

 

 

 

 

 

6. @Autowired

설명: 스프링 컨테이너에서 관리하는 Bean을 주입합니다.


@RestController
public class UserController {
    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }
}

 

 

 

 

 

 

7. @Service

설명: 서비스 레이어 클래스에 사용되며, 비즈니스 로직을 처리하는 클래스임을 나타냅니다.


@Service
public class UserService {
    public String getUser() {
        return "User";
    }
}

 

 

 

 

 

 

 

8. @Repository

설명: 데이터 접근 계층(DAO) 클래스에 사용되며, 데이터베이스와의 상호작용을 담당합니다.


@Repository
public class UserRepository {
    public String findUser() {
        return "Database User";
    }
}

 

 

 

 

 

 

9. @Component

설명: 개발자가 직접 정의한 클래스를 스프링 빈으로 등록할 때 사용됩니다.


@Component
public class CustomComponent {
    public String getMessage() {
        return "Hello from Component";
    }
}

 

 

 

 

 

 

10. @Configuration

설명: 스프링 설정 클래스를 정의하며, @Bean을 사용하여 직접 Bean을 등록할 수 있습니다.


@Configuration
public class AppConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

 

 

 

 

 

11. @Entity

설명: JPA를 사용할 때 데이터베이스 테이블과 매핑되는 클래스를 정의합니다.


@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
}

 

 

 

 

 

 

12. @Transactional

설명: 메서드나 클래스에 트랜잭션 관리를 적용합니다.


@Service
public class UserService {
    @Transactional
    public void saveUser(User user) {
        // DB 저장 로직
    }
}

 

 

 

 

 

 

 

13. @ExceptionHandler

설명: 컨트롤러에서 발생하는 특정 예외를 처리합니다.


@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity handleException(Exception ex) {
        return new ResponseEntity<>(ex.getMessage(), HttpStatus.BAD_REQUEST);
    }
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.