@Configuration

2023. 2. 6. 12:39· Spring
목차
  1. @Configuration
  2. @ComponentScan
반응형

과거에는 xml파일을 이용해 Java config, 즉 설정 파일을 수정했는데 스프링 프로젝트의 크기가 점점 커지고 IDE의 도움을 받을 수 없다. (오타, 자동완성)
그래서 @Configuration어노테이션을 사용해 클래스 파일을 설정파일로 사용하게 되었다.

@Configuration

스프링 설정용 클래스라는 의미를 가진다.
@Configuration가 붙어 있는 클래스 내부에 @Bean메소드가 있을 때, 이 메소드들을 자동으로 실행하여 반환되는 객체를 싱글톤으로 등록해준다.
@Bean메소드만으로도 Bean 등록이 되지만 싱글톤을 보장하지 못한다.
그래서 @Bean메소드를 포함하는 클래스는 항상 @Configuration어노테이션을 사용해준다.
참고로 @Configuration 어노테이션 내부에도 @Component가 있기 때문에 이 클래스도 Bean으로 등록된다.

@Configuration
public class SpringConfig{
	@Bean
	public AlarmDevice alarmDevice(){
		return new SmsAlarmDevice();
	}
}

위의 코드는 아래와 같은 xml설정 Bean을 정의한다.

<bean id="alarmDevice" class="mad.spring.ch4.homecontrol.SmsAlarmDevice"/>

@ComponentScan

@ComponentScan("{경로}")와 @Configuration을 함께 써주면 {경로}의 경로 이하에 있는 패키지에서 @Component를 모두 찾아 메모리에 올려준다.

@Component 어노테이션이 붙은 객체들은 @ComponentScan을 이용해 메모리에 올린 후 DI를 주입하도록 한다.
@Component 어노테이션이 붙지 않은 객체들은 @Bean어노테이션을 이용해 직접 생성해주는 방식으로 주입한다.

reference: Java Config를 이용한 설정

"본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다."

반응형

'Spring' 카테고리의 다른 글

NPM으로 프론트엔드 라이브러리 관리  (0) 2023.02.06
@Validation  (0) 2023.02.06
@Bean, @Component 차이  (0) 2023.02.06
@Controller, @RestController 차이  (0) 2023.02.06
안전한 Lombok 사용법  (0) 2023.02.06
  1. @Configuration
  2. @ComponentScan
'Spring' 카테고리의 다른 글
  • NPM으로 프론트엔드 라이브러리 관리
  • @Validation
  • @Bean, @Component 차이
  • @Controller, @RestController 차이
dongb
dongb
Actions lead thoughts.
dongb
Now or Never
dongb
전체
오늘
어제
  • 분류 전체보기 (87)
    • Kotlin (23)
    • Spring (24)
    • Java (5)
    • Istio (7)
    • Kubernetes (19)
    • CICD (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Database
  • 챗GPT
  • kubernetes
  • Kotlin
  • Service
  • configmap
  • oauth2.0
  • spring data jpa
  • volume
  • GPT
  • java
  • POD
  • ChatGPT
  • GPT-4
  • skaffold
  • Test
  • 네트워크

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
dongb
@Configuration
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.