Spring Boot (Maven)

스프링부트 백그라운드7 ( 빈 생성방법 - 권장 )

pjh8838 2024. 6. 9. 18:13
반응형

@SpringBootApplication 어노테이션이 같은 패키지 혹은 서브 패키지에서 스캔

근데 무조건 같은 패키지나 서브 패키지에서 스캔 하는게 아님!

그래서 우리가 스캔( 빈으로 만들게 )하게 어노테이션으로 명시해줘야 한다.

 

 

 

권장방법에서는 Configuration이 필요없다

=> 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

 


 

실습

 

 

dao가 있으면 서비스도 있어야하니까 만들어주기

 

그럼 내가 생성해야 하는 빈은 2가지 -> DAO (@Repository) , Service ( @Service )

 

728x90
반응형