@SpringBootApplication 어노테이션이 같은 패키지 혹은 서브 패키지에서 스캔
근데 무조건 같은 패키지나 서브 패키지에서 스캔 하는게 아님!
그래서 우리가 스캔( 빈으로 만들게 )하게 어노테이션으로 명시해줘야 한다.
=> DAO에 @Configuration 어노테이션을 써도 생성이 되지만,
@Configuration은 어떤 빈이 알려주는 역할이라서 알맞지 않음
@Component는 범용적으로 사용하는 어노테이션이라 사용 가능
@Repository
@Service
@Controller
권장패키지 구조
첫번째 작업 : @SpringBootAppliction과 같은 패키지거나 서브패키지로 작성한다.
두번째 작업 : 클래스에 어노테이션을 지정한다
@Configuration, @Component, @Repository, @Service, @Controller, @RestController
@SpringBootAppliction 안에 들어있는 @ComponentScan은 Component( 빈 )를 스캔한다는 뜻
구조
com.exam (패키지)
@SpringBootAppliction ( , , @ComponentScan)
Application.java
xxx (서브패키지)
@Configuration ( 빈으로 생성됨) - @Bean으로 빈 생성시 빈정보를 설정하는 빈에서 사용.
Test.java
@Component ( 빈으로 생성됨) <-- 범용적으로 사용
Hello.java
@Repository ( 빈으로 생성됨) <---- DAO 역할의 빈에서 사용
World.java
@Service ( 빈으로 생성됨) <---- Service 역할의 빈에서 사용
World2.java
@Controller ( 빈으로 생성됨) , @RestController ( 빈으로 생성됨)
World3.java
실습
그럼 내가 생성해야 하는 빈은 2가지 -> DAO (@Repository) , Service ( @Service )
'Spring Boot (Maven)' 카테고리의 다른 글
스프링부트 백그라운드9 ( 생성된 빈 접근하는 방법 ) (0) | 2024.06.11 |
---|---|
스프링부트 백그라운드8 ( 빈 간의 의존성 설정 ) - 권장 (0) | 2024.06.09 |
스프링부트 백그라운드6 ( 빈 생성방법 - 명시적생성(잘안씀) ) (0) | 2024.06.08 |
스프링부트 백그라운드5 ( 로깅처리 ) (0) | 2024.06.08 |
스프링부트 백그라운드4 ( 스프링부트 장점, 특징 ) (1) | 2024.06.08 |