까뮈_b
까뮈의 개발 노트
까뮈_b
전체 방문자
오늘
어제
  • 분류 전체보기 (23)
    • JAVA (0)
    • Spring (4)
    • JPA (1)
    • JavaScript (1)
    • DB (0)
      • Mysql (0)
    • Tools (4)
      • IntelliJ (2)
      • WebStorm (1)
      • Flyway (1)
    • 에러노트 (2)
    • 생각노트 (1)
    • Git (4)
    • HTML&CSS (1)
    • Laravel (2)
    • AWS (3)
    • Server (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring
  • 502 Bad Gateway
  • Amzone Linux AMI 2
  • DBEngineVersion
  • start.spring.io
  • 컴포넌트 스캔
  • 리버스 프록시 서버
  • 구조 분해 할당
  • ElasticBeanstalk 버그
  • ElasticBeanstalk
  • 의존관계 주입
  • AWS ElasticBeanstalk
  • EC2 호스트네임 변경
  • componentscan
  • 111: Connection refused
  • webstorm keymap
  • netstat
  • AWS
  • 무중단배포
  • Non-ASCII Characters

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
까뮈_b

까뮈의 개발 노트

컴포넌트 스캔과 의존관계 자동 주입 시작하기
Spring

컴포넌트 스캔과 의존관계 자동 주입 시작하기

2022. 4. 20. 11:29

구성정보를 지정하는 AutoAppConfig.java 클래스를 만든다.

@Configuration
@ComponentScan(
        basePackages = "hello.core.member", // 탐색할 패키지의 시작 위치를 지정한다.
        basePackageClasses = AutoAppConfig.class, //AutoAppConfig가 위치한 패키지를 basePackage 삼는다.
	excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
	
    	// 보통 실무에서는 @Configuration을 따로 제외하지 않지만, 기존 예제코드 최대한 남기기 위해 사용함.
    	// 컴포넌트 스캔을 사용하면 @Configuration 이 붙은 설정 정보도 자동으로 등록되기 때문에,
    	// AppConfig, TestConfig 등 앞서 만들어두었던 설정 정보도 함께 등록되고, 실행되어 버리기 때문.

)
public class AutoAppConfig {

}

@Configuration : 스프링 설정 정보로 인식하고 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다.

 

@ComponentScan : @Component 어노테이션이 붙은 클래스를 모두 찾아서 자동으로 스프링 빈에 등록한다.

이때 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.

아래의 예시 그림과 같이 동작한다.

만약 스프링 빈의 이름을 직접 지정하고 싶으면
@Component("memberService2") 이런식으로 이름을 부여하면 된다.

 

@Autowired 의존관계 자동 주입

@AutoWired의 의존관계 주입 전략

생성자에 @Autowired 를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입한다.
이때 기본 조회 전략은 타입이 같은 빈을 찾아서 주입한다.
getBean(MemberRepository.class) 와 동일하다고 이해하면 된다.

 

 

 

'Spring' 카테고리의 다른 글

[AppConfig] 앱의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 기획자.  (0) 2022.04.19
스프링부트가 처음 실행될 때. @SpringBootApplication에 관하여.  (0) 2022.04.19
[프로젝트 생성] start.spring.io를 통해 프로젝트 생성하는 법  (0) 2022.04.14
    'Spring' 카테고리의 다른 글
    • [AppConfig] 앱의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 기획자.
    • 스프링부트가 처음 실행될 때. @SpringBootApplication에 관하여.
    • [프로젝트 생성] start.spring.io를 통해 프로젝트 생성하는 법
    까뮈_b
    까뮈_b
    까먹지 않기 위해서 개발 관련 시행착오를 정리한 포스트를 작성합니다.

    티스토리툴바