OAuth Annotation 분석
OAuth 2.0 의 개발을 진행하던중
처음 해보는 생소한 코드가 너무 많아서 분석이 안되는 부분이 많아
Annotation 부터 분석을 해보자 라는 생각을 하게되었다.
@EnableAuthorizationSever
- @Target, @Retention , @Documented Annotation을 포함하고 있고 인터페이스이다.
현재 애플리케이션 컨텍스트에서 Authorization Sever(AuthorizationEndpoint)를 활성화하기 위한 Annotation 이다.
@Configuration
- Annotation 이 달린 클래스는 Bean설정을 담당하는 클래스가 된다.
선언된 해당 클래스 안에서 @Bean Annotation 이 동봉된 메소드를 선언하면, 그 메소드를 통해 스프링 Bean을 정의하고 생명주기를 설정하게 된다.
@Bean
- Spring Container 에 Bean등록을 위한 Annotation.
개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용된다.
@Component
- Spring Container 에 Been 등록을 위한 Annotation.
개발자가 직접 작성한 클래스를 Bean으로 등록하기 위한 Annotation 이다.
@Autowired
- 필드, 메소드 생성자에 선언하여 사용할 수 있고, 해당 클래스에 맞는 스프링 Been 을 가져온다.
@Override
- 해당 메소드가 부모 클래스가 있는 메서드를 Override 했다는 것을 명시적으로 선언한다.
@RequiredArgsConstructor
- final 이 붙거나 @NotNull 이 붙은 필드의 생성자를 자동 생성해주는 롬복 Annotation.
@RestController
- 스프링프레임워크 4.x 버전 이상부터 사용 가능한 Annotation.
@Controller 에 @ResponseBody 가 결합된 Annotation.
해당 Annotation 이 선언된 클래스의 하위 메서드는 @ResponseBody Annotation 을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있다.
@Builder
- 빌더를 자동으로 추가시켜주는 롬복 Annotation.
@Entity
- 해당 Annotation 을 선언하면 그 클래스는 JPA가 관리한다. DB의 테이블과 맵핑한다면 반드시 사용해야 한다.
@Table
- 해당 Entity가 DB테이블과 맵핑하는 것을 명시한다. name 속성으로 맵핑되는 테이블을 변경할 수 있다.
기본값은 해당 클래스명의 DB 테이블명으로 맵핑된다.
@Getter
- Getter를 자동으로 생성시켜주는 롬복 Annotation 이다.
@Setter
- Setter를 자동으로 생성시켜주는 롬복 Annotation 이다.
@NoArgsConstructor
- 해당 Entity의 아무 인수가 없는 생성자를 생성 시켜주는 Annotation 이다.
@AllArgsConstructor
- 해당 Entity의 인자를 모두 갖춘 생성자를 생성 시켜주는 Annotation 이다.
@ElementCollection
- 컬렉션 형태의 객체는 컬럼과 매핑되지 않기 때문에 해당 객체가 컬렉션 객체임을 알려주는 Annotation 이다.