[Spring] Stereo Type Annotation

김대준·2022년 1월 15일
0

spring

목록 보기
20/25
post-thumbnail

Stereo Type Annotation


📌Stereo Type Annotation

Stereo Type Annotation이란, 빈으로 등록하기 위한 어노테이션이다.

스프링 컨테이너가 스프링 관리 컴포넌트로 식별하게 해주는 단순한 마커다.

스테로 타입 종류 : @Component, @Repository, @Service, @Controller 등등..


📌 @Component

@Component가 붙은 클래스는 빈 스캐너를 통해 자동으로 빈으로 등록된다.
xml이 없을 때,userDao빈을 자동으로 주입받고 싶다면, @Component를 아래와 같이 사용하면 된다.

🔍 @Comfiguration
XML을 대신하는 스프링 빈 설정 클래스를 의미한다.
스프링 설정 정보로 인식하고 스프링 빈이 싱글톤을 유지하도록 한다.

🔍 @ComponentScan
스캔할 @Component 클래스의 위치를 지정한다.
지정한 패키지 아래의 모든 서브 패키지를 다 검색한다.

🔍 @Component
빈으로 등록한다.
빈의 아이디를 따로 지정하지 않으면 클래스 이름의 첫 글자를 소문자로 바꿔서 사용한다.

@Configure
@ComponentScan(basePackages = "UserDaoJdbc.package.name")
public class ComponentExample {
	
    @Autowired UserDao uerDao;
    
    @Bean
    public UserService userService() {
    	UserServiceImpl service = new UserServiceImpl();
        service.setUserDao(this.userDao);
        return service;
    }

}

@Component
public class UserDaoJdbc implements UserDao {...}



📌 @Repository

스프링 DAO 관련 빈을 자동 등록 대상으로 만들 때 사용한다.
@Component를 포함하고 있어 스프링 빈을 생성하고, 부가적인 기능을 수행한다.
스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다.

@Repository
public class UserDaojdbc implements UserDao {}



📌 @Service

@Component를 포함하고 있어 스프링 빈을 생성한다.
@Service@Component 기능을 제외한 부가적인 기능이 없다.
단지 개발자들이 핵심 비즈니스 로직이 여기에 있구나라고 인식하도록 도움을 준다.
서비스 계층의 빈을 생성하는 역할을 의미한다.
스프링 비즈니스 로직에서 사용한다.



📌 @Controller

MVC에서 컨트롤러 역할을 하는 빈을 의미한다.
스프링 MVC 컨트롤러에서 사용한다.



📌 @Store

MVCS(Model-View-Controlller-Store) 모델에서 스토어를 담당한다.
스토어란, 데이터를 가져오고 저장하는 역할을 하는 코드들을 모아 놓는 곳이다.
보통 외부 리소스를 가져오는 API 메소드들을 모아놓는 곳이다.
데이터를 가져오는 메소드를 한 곳에 모아둠으로써 코드를 이해하고, 관리하기 쉽게 만든다.





참고 자료


김영한 스프링 핵심원리 - 기본편

https://blog.naver.com/kbh3983/220908370180

profile
kureungkureung

0개의 댓글