2016-12-25 4 views
8

저는 스프링 부트 응용 프로그램을 처음 접했습니다. Spring 부트 애플리케이션이 @Configuration 클래스없이 bean을 만드는 방법을 알고 싶었습니다. @Bean 정의도 컴포넌트 검사도없는 샘플 프로젝트를 보았습니다. 그러나 @Autowired는 클래스에 종속성을 제공했습니다. 스프링의스프링 부트 응용 프로그램

@RestController 
public class RestController{ 

**@Autowired 
public CertificationService certificationService;** 
. 
. 
. 
. 
} 

//Interface 

public interface CertificationService{ 

public List<Certification> findAll(); 

} 

//Implementation Class 
@Transactional 
@Service 

public class CertificationServiceImpl{ 

public List<Certification> findAll(){ 
. 
. 
} 

} 

내 제한된 지식 클래스를 통해 @Service 주석이있을 때, 빈을 만들 어딘가에 @ComponentScan이 있어야한다라고 나에게 이야기 : 아래의 코드 조각에서 참조하시기 바랍니다. 하지만 구성 요소 검사 없이는 CertificationServiceImpl bean이 어떻게 생성되며 RestController에서 CertificationService의 autowiring이 어떻게 작동합니까?

답변

7

문서에 said으로 :

... @SpringBootApplication 주석은

하자 당신 같은 봄 부팅 응용 프로그램 수준의 뭔가가 있다고 ... @Configuration, @EnableAutoConfiguration@ComponentScan을 사용하는 것과 같습니다 :

package com.mypackage; 

import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication  
public class SpringBootApplication {  
    public static void main(String[] args) {  
     SpringApplication.run(SpringBootApplication.class, args);  
    }  
} 

그런 다음 패키지 com.mypackage 아래의 모든 패키지는 기본적으로 Spring 구성 요소에 대해 검사됩니다. 그런데 @ComponentScan을 사용하지 않고 @SpringBootApplication 주석으로 스캔 할 패키지를 지정할 수 있습니다. 더 자세한 내용 here.

+0

감사합니다. Ken Bekov. – Chandan

관련 문제