본문 바로가기
개발/자바

스프링 프레임워크 자주 쓰는 어노테이션

by wusdlqslek 2024. 4. 1.
  1. @Controller
    • @Controller 어노테이션은 클래스를 컨트롤러로 지정한다.
    • 컨트롤러는 사용자의 요청을 받아 처리하고 결과를 반환하는 역할을 한다.
    • 예를 들어, 사용자가 로그인 버튼을 클릭하면 로그인 요청을 처리하는 컨트롤러가 동작한다.
  1. @RequestMapping
    • @RequestMapping 어노테이션은 요청 URL과 컨트롤러 메서드를 매핑한다.
    • URL 패턴을 지정하여 해당 URL로 들어오는 요청을 처리할 메서드를 지정할 수 있다.
    • 예를 들어, "/login" URL로 들어오는 요청을 처리하는 메서드에 @RequestMapping("/login")을 붙인다.
  2. @GetMapping, @PostMapping
    • @GetMapping과 @PostMapping 어노테이션은 HTTP GET, POST 요청을 처리하는 메서드를 지정한다.
    • @GetMapping은 데이터를 조회할 때, @PostMapping은 데이터를 등록할 때 주로 사용된다.
    • 예를 들어, 사용자 정보를 조회하는 메서드에는 @GetMapping을, 회원 가입 요청을 처리하는 메서드에는 @PostMapping을 사용한다.
  3. @RequestParam
    • @RequestParam 어노테이션은 HTTP 요청 파라미터를 메서드의 매개변수에 바인딩한다.
    • 요청 파라미터의 이름과 메서드 매개변수의 이름을 일치시켜 값을 전달받을 수 있다.
    • 예를 들어, "/search?query=spring"이라는 요청에서 "query" 파라미터의 값을 메서드에서 사용할 수 있다.
  4. @PathVariable
    • @PathVariable 어노테이션은 URL 경로에 포함된 변수를 메서드의 매개변수에 바인딩한다.
    • URL 경로에 {변수명} 형태로 변수를 지정하고, 메서드 매개변수에 @PathVariable을 붙여 값을 전달받는다.
    • 예를 들어, "/users/{id}" 경로에서 "id" 값을 메서드에서 사용할 수 있다.
  5. @RequestBody
    • @RequestBody 어노테이션은 HTTP 요청 본문(body)의 내용을 메서드의 매개변수에 바인딩한다.
    • 주로 JSON 형식의 데이터를 받아 객체로 변환할 때 사용된다.
    • 예를 들어, 사용자가 회원 정보를 JSON 형식으로 전송하면, 해당 데이터를 자바 객체로 변환하여 메서드에서 사용할 수 있다.
  6. @ResponseBody
    • @ResponseBody 어노테이션은 메서드의 반환 값을 HTTP 응답 본문(body)에 직접 작성한다.
    • 주로 JSON 형식의 데이터를 반환할 때 사용된다.
    • 예를 들어, 사용자 정보를 조회한 결과를 JSON 형식으로 응답하고자 할 때 @ResponseBody를 사용한다.
  7. @Autowired
    • @Autowired 어노테이션은 스프링의 의존성 주입(Dependency Injection) 기능을 사용한다.
    • 필요한 의존 객체를 스프링이 자동으로 생성하여 주입해준다.
    • 예를 들어, 서비스 클래스에서 데이터 접근 객체(DAO)를 사용할 때 @Autowired를 통해 의존성을 주입받는다.
  8. @Service
    • @Service 어노테이션은 클래스를 서비스 계층으로 지정한다.
    • 서비스 계층은 비즈니스 로직을 담당하며, 컨트롤러와 데이터 접근 계층 사이에서 중간 역할을 한다.
    • 예를 들어, 회원 가입 로직을 처리하는 서비스 클래스에 @Service를 붙인다.
  9. @Repository
    • @Repository 어노테이션은 클래스를 데이터 접근 계층으로 지정한다.
    • 데이터 접근 계층은 데이터베이스와의 상호작용을 담당하며, 데이터의 조회, 저장, 수정, 삭제 등의 작업을 수행한다.
    • 예를 들어, 사용자 정보를 데이터베이스에서 조회하는 DAO 클래스에 @Repository를 붙인다.
  10. @Component
    • @Component 어노테이션은 클래스를 스프링의 빈(Bean)으로 등록한다.
    • 스프링이 관리하는 객체로 만들어, 의존성 주입 등의 기능을 사용할 수 있게 된다.
    • 예를 들어, 유틸리티 클래스를 스프링 빈으로 등록하여 다른 클래스에서 의존성 주입을 받아 사용할 수 있다.
  11. @Configuration
    • @Configuration 어노테이션은 클래스를 스프링 설정 클래스로 지정한다.
    • 설정 클래스 내에서 빈(Bean)을 정의하고 의존성을 설정할 수 있다.
    • 예를 들어, 데이터베이스 연결 정보를 설정하는 클래스에 @Configuration을 붙인다.
  12. @Bean
    • @Bean 어노테이션은 메서드가 반환하는 객체를 스프링의 빈으로 등록한다.
    • 주로 @Configuration 어노테이션이 붙은 클래스 내에서 사용된다.
    • 예를 들어, 데이터 소스(DataSource) 객체를 생성하는 메서드에 @Bean을 붙여 스프링이 관리하도록 한다.
  13. @Transactional
    • @Transactional 어노테이션은 메서드 또는 클래스에 트랜잭션 기능을 적용한다.
    • 트랜잭션은 데이터베이스의 일련의 작업을 묶어서 처리하는 것을 말한다.
    • 예를 들어, 돈을 이체할 때 출금과 입금이 모두 성공해야 전체 작업이 완료되는 것처럼, @Transactional을 사용하여 작업의 일관성을 유지할 수 있다.
  14. @Scope
    • @Scope 어노테이션은 빈의 생성 범위를 지정한다.
    • 싱글톤(singleton), 프로토타입(prototype) 등의 범위를 설정할 수 있다.
    • 예를 들어, 매 요청마다 새로운 객체를 생성하고 싶다면 @Scope("prototype")을 사용한다.
  15. @Value
    • @Value 어노테이션은 속성 값을 주입한다.
    • 주로 properties 파일이나 YAML 파일에 정의된 값을 읽어와 필드에 주입할 때 사용된다.
    • 예를 들어, 애플리케이션의 설정 값을 @Value("${property.name}")과 같이 주입받을 수 있다.
  16. @Qualifier
    • @Qualifier 어노테이션은 동일한 타입의 빈이 여러 개 존재할 때, 특정 빈을 지정한다.
    • @Autowired와 함께 사용되며, 주입 대상을 명확히 지정할 수 있다.
    • 예를 들어, 동일한 인터페이스를 구현한 여러 클래스 중에서 특정 클래스를 주입받고 싶을 때 @Qualifier("beanName")을 사용한다.
반응형

'개발 > 자바' 카테고리의 다른 글

Thymeleaf 속성  (0) 2024.04.06
자바 JPA, Spring Data JPA, MyBatis  (0) 2024.03.26
스프링 프레임워크 AOP에 대해..  (0) 2024.03.25
자바 생성자  (0) 2024.02.05
메소드 정리  (1) 2024.02.02

댓글