Stereo Type Annotation
이란, 빈으로 등록하기 위한 어노테이션이다.
스프링 컨테이너가 스프링 관리 컴포넌트로 식별하게 해주는 단순한 마커다.
스테로 타입 종류 : @Component
, @Repository
, @Service
, @Controller
등등..
@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 {...}
스프링 DAO 관련 빈을 자동 등록 대상으로 만들 때 사용한다.
@Component
를 포함하고 있어 스프링 빈을 생성하고, 부가적인 기능을 수행한다.
스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다.
@Repository
public class UserDaojdbc implements UserDao {}
@Component
를 포함하고 있어 스프링 빈을 생성한다.
@Service
는 @Component
기능을 제외한 부가적인 기능이 없다.
단지 개발자들이 핵심 비즈니스 로직이 여기에 있구나
라고 인식하도록 도움을 준다.
서비스 계층의 빈을 생성하는 역할을 의미한다.
스프링 비즈니스 로직에서 사용한다.
MVC에서 컨트롤러 역할을 하는 빈을 의미한다.
스프링 MVC 컨트롤러에서 사용한다.
MVCS(Model-View-Controlller-Store) 모델에서 스토어를 담당한다.
스토어란, 데이터를 가져오고 저장하는 역할을 하는 코드들을 모아 놓는 곳이다.
보통 외부 리소스를 가져오는 API 메소드들을 모아놓는 곳이다.
데이터를 가져오는 메소드를 한 곳에 모아둠으로써 코드를 이해하고, 관리하기 쉽게 만든다.