inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 프레임워크 핵심 기술

IoC 컨테이너 4부: @Component와 컴포넌트 스캔

@SpringBootApplication에 @ComponentScan 붙으면 어떻게 되나요?

250

SeungJin Park

작성한 질문수 1

1

@SpringBootApplication은 소스를 열어보면  아래처럼@ComponentScan이 같이 걸려 있는데요. 

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

sj.study.spring.StudyApplication에서 sj.study.other.MyService라는 bean으로 등록하기 위해서 아래처럼 CompoentScan을 사용한다면 기존에 @SpringBootApplication에 포함된 필터나 조건들은 어떻게 되는지 궁금합니다. 아래처럼 하면 동작은 하지만 규칙은 알 수 없어서 질문합니다.

공존하는 것인지 ?

아니면 덮어쓰는지?

경우에 따라 다르다면 어떤 조건이 있는지 궁금합니다. 

이런 정보를 알려면 어떤 문서를 참조해야 하는지도 궁금합니다. 

 

감사합니다.

 

package sj.study.spring;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

import sj.study.other.MyService;

@SpringBootApplication
@ComponentScan(basePackages={"sj.study"})
public class StudyApplication {
	
	@Autowired
	MyService myService;
	
	@Autowired
	BookService bookService;

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

}

spring java

답변 1

1

백기선

기존 설정을 엎어쓰게 되서 @SpringBootApplication 안에 있는 @ComponentnScan은 무시하고 @ComponentScan(basePackages={"sj.study"}) 이 설정이 적용됩니다.

이런건 간단히 코드 작성해서 테스트 해보는게 문서를 찾아보는거 보다 더 빠르고 정확하더라구요.

BeanFactory와 ApplicationContext 중 사용하고 싶은 컨테이너를 설정 할 수 있나요?

0

381

1

프로젝트 생성에 관련한 질문

0

376

1

안녕하세요 강의 내용을 듣다가 궁금점이 생겨 글을 남기게 되었습니다.

0

371

1

HttpServeltRequest 객체의 빈 스코프에 대해 질문 드립니다.

0

304

0

PropertyEditor non thread-safe 한 이유

0

491

1

빈의 초기화 시점이 궁금합니다.

0

393

1

이 강의 예제소스 없나요?

0

345

1

릴로딩 기능에 대해

0

404

1

Bean 을 특정 Application...Event 발생 후, 등록하는 방법이 궁금합니다

0

612

3

IoC/DI와 POJO의 관계

1

749

2

기선님 RetentionPolicy에 대해서 질문이 있습니다.

0

291

1

안녕하세요 기선님!

3

486

3

비동기적으로 실행할때

0

314

2

"Prototype/프록시"로 설정했는데 동일한 객체로 나옵니다

0

530

4

@Autowired 로 가져오는 Bean은 ?

2

280

1

Type-Safety 의미

0

538

1

Null Point

0

318

1

WebDataBinder를 특별히 쓰는 이유가 있나요?

0

384

1

안녕하세요?

0

336

2

애노테이션이 없습니다(?)

0

279

3

코드 중 변수 앞에 적는 것이 무엇인지 알고 싶습니다.

0

295

2

강의 하시면서 사용하는 resolving 이란 단어는 어떤 의미인가요?

1

1499

1

IOC컨테이너관련 질문입니다

0

245

3

인터페이스가 있는 경우 인터페이스 타입으로 주입하는 추가 질문입니다.

0

259

1