미소를뿌리는감자의 코딩

[Spring] Annotations 모음 본문

강의수강/[Spring]

[Spring] Annotations 모음

미뿌감 2024. 2. 29. 15:33
728x90
@RestController RESTful 웹 서비스 형성을 간소화 하기 위해서 적는 annotation이다.
@RestController = @Controller + @ResponseBody 이다.
@Controller web request가 도달할 수 있는 종착역
@ResponseBody HttpMessageWriter를 통해서, 반환하는 것을 직렬화 (serialize)
즉 client에게 response를 보내는 본문
@GetMapping("/hello") Get의 HTTP request 처리
@PostMapping("/hello") Post의 HTTP request 처리
@PutMapping("/hello") Put의 HTTP request 처리
@DeleteMapping("/hello") Delete의 HTTP request 처리
@RequestMapping("/api") request들을 controllers methods로 mapping하는 역할을 함.
이를 통해서 중복되는 url 부분을 처리할 수 있음.
@DisplayName test method에 친숙한 이름을 사용할 수 있도록 함.
@PathVariable parameter 앞에 위치시켜, 해당 파라미터가 url 경로의 일부임을 명시
@RequestParam parameter 앞에 위치, 해당 parameter가 request parameter와 바인딩 됨을 나타냄. 
@Entity class가 DB의 엔티티 임을 나타냄.
이것이 붙은 class를 DB의 테이블과 매핑되어 JPA를 통해 DB의 table에 해당하는 데이터를 객체 형태로 다룰 수 있게 해줌.
@Table(name = "users") 매핑할 테이블 이름을 지정할 수 있음.
@Id 고유 식별자를 나타냄. DB의 기본 키에 해당.
@GeneratedValue(strategy = GenerationType.IDENTITY) auto increment를 사용할 수 있도록 함.
@Component 해당 클래스가 Spring의 관리 대상임을 나타냄.
spring application context의 빈으로 등록.
@Service Service class annotation으로 사용됨.
@component annotation이 포함되어 있음.
@Autowired DI를 자동으로 처리하기 위해 사용하는 annotation
Spring이 reflection을 사용하여 해당 필드에 의존성을 주입함.
생성자가 하나면, 적지 않아도 됨.
@Transactional 데이터를 수정할 때, 주로 사용되며
연산 중 하나라도 실패 된다면, 이전에 실행된 모든 변경사항이 롤백될 수 있도록 한다.
Dirty Checking 기능: 엔티티의 필드 값이 변경되면, 해당 트랜잭션이 종료될 때 변경된 사항이 DB에 자동으로 반영됨.
@NoArgsConstructor 자동으로 기본 생성자를 생성.
명시적으로 생성자를 선언하지 않으면 기본 생성자를 자동으로 추가함.
하지만 하나 이상의 생성자를 명시적으로 선언한 경우 기본 생성자는 자동으로 생성되지 않음. 이때, 해당 annotation 사용 -> 기본 생성자 명시적으로 생성.
@Transactional 해당 메서드나 클래스에 포함된 모든 데이터베이스 연산이 하나의 트랜잭션으로 묶이게 됨.
메서드 실행 중, 예외가 발생하게 되면 트랜잭션은 자동으로 롤백되게 된다.
@Bean 이 annotation이 붙은 메소드가 반환하는 객체를 IoC 컨테이너에 bean으로 등록함.
@Configuration @Bean이 등록 되어 있는 class 위에 @configuration을 넣어줌. 
Bean에 등록될 객체를 생성하고 초기화 하는 역할을 함.
@Primary interface에 구현체가 2개 선언되어 있을 때, Qualifier선언된 것이 없다면, Primary 선언된 구현체를 사용해줌.
@Qualifier interface에 구현체가 2개 선언되어 있을 때, Qualifier 선언된 구현체를 사용해줌.
728x90

'강의수강 > [Spring]' 카테고리의 다른 글

[Spring] Response Json  (0) 2024.02.29
[Spring] 정적, 동적 html 처리  (0) 2024.02.29
[Spring] 단축키 모음  (0) 2024.02.29
[Spring] Various annotations  (0) 2024.02.29
[Spring] annotation - RestController, GetMapping w. Postman  (1) 2024.02.28