개발자 끄적끄적
Annotation 용어 정리 본문
MVC
- Controller(RestController, Servlet), Service(dao)
Mybatis
- Mapper interface, xml
AOP(관심사항을 분리해서 특정 요소(=Method)에 Weaving)
- aspectj(weaver, rt) dependency 추가
- Application main class -> aspectj를 활성화
- Config class 작성
DI(Dependency Injection, 의존성 주입)
- 클래스간의 의존관계를 스프링 컨데이너가 자동으로 연결해주는 것
- Spring에 의해 생성되고 관리되는 자바 객체
- 어떤 객체(B)를 사용하는 주체(A)가 객체(B)를 직접 생성하는 것이 아니라
객체를 외부(Spring)에 생성해서 사용하려는 주체 객체(A)에 주입시켜주는 방식
사용하는 주체(A)가 사용하려는 객체(B)를 직접 생성하는 경우
의존성이 높아지는데 외부(Spring)에서 직접 생성하여 관리하는 경우에는
A와 B의 의존성이 줄어든다
Annotation
- 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터(Metadata)의 일종
ex)자바에서 기본적으로 제공하는 Annotation : @Override
*뜻 풀이 : 주석
메타 데이터(Metadata)
- 데이터에 관한 구조화된 데이터로, 다른 데이터를 설명해주는 데이터
- 즉, 데이터에 대한 데이터이다
- 대량의 정보 가운데서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해
일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터
(인스타그램의 해시태크('#')와 유사한 역할)
@Component Annotation
- Bean을 등록하기 위해 사용
- Spring이 Annotation을 확인하고 자체적으로 Bean으로 등록
*@Controller Annotation에는 @Component Annotation이 있는 것을 확인하며,
@Component Annotation으로 인하여 Spring은 해당 Controller를
Bean으로 등록한다
*Bean Configuration File에 직접 Bean을 등록하는 방법
- @Configuration과 @Bean Annotation을 이용
Spring Bean
- Spring IoC 컨테이너가 관리하는 자바 객체
@Autowired
- 필요한 의존 객체의 "타입"에 해당하는 빈을 찾아 주입
- 생성자
- setter
- 필드
- 위의 3가지의 경우에 Autowired를 사용할 수 있다
Autowired는 기본값이 true이기 때문에 의존성 주입을 할 대상을 찾지 못한다면
애플리케이션 구동에 실패한다
@RequestMapping
- 들어온 요청을 특정 메서드와 매핑하기 위해 사용한다
- 가장 많이 사용하는 부분은 value와 method이다
- value : 요청 받을 url을 설정
- method : 어떤 요청으로 받을 지 정의(GET, POST, PUSH, DELETE 등)
ex)@RequestMapping(value = "/hello", method = RequestMethod.GET)
@Aspect
- 해당 Class가 횡단관심사(부가기능) Class임을 알려주는 Annotation
@Around
- Adivce의 한 종류로 핵심관심사의 실패여부와 상관없이 전후로
실행되도록 하는 Advice
- @Around Annotation의 속성값으로 PointCut을 전달되어야 한다
@PointCut
- 횡단관심사(부가기능)이 적용될 JoinPoint들을 정의한다
- @Pointcut("execution(접근제어자, 반환형 패키지를 포함한 클래스 경로 메소드파라미터)
@Within(Class의 경로)
- 패키지내의 모든 메소드에 적용할 때 사용
- @Pointcut("within( )")
@Bean(bean id)
- 해당 bean id를 가지고 있는 bean의 모든 메소드에 적용한다는 의미
@Configuration
- 클래스를 통해 Bean을 구현할 수 있도록 도와주는 Annotation
- Spring Project에서의 Configuration 역할을 하는 Class를 지정
*해당 File 하위에 Bean으로 등록하고자 하는 Class에 @Bean Annotation을
사용해주면 Bean을 등록할 수 있다
@Annotation
- 사용자가 직접 만든 Annotation에 기반해 Aspect를 적용할 수도 있다
@Controller
- 핸들러가 스캔할 수 있는 빈(Bean) 객체가 되어 서블릿용 컨테이너에 생성
@Repository, @Service
- 해당 클래스를 루트 컨테이너에 빈(Bean) 객체로 생성해주는 Annotation
'Spring' 카테고리의 다른 글
AOP 작업 (0) | 2023.03.04 |
---|---|
Spring 기본개념 (0) | 2023.03.04 |
Spring 설치 (0) | 2023.03.04 |