[Spring] @Configuration / @Bean 다시 보기

snowballnote·2026년 10월 2일

Biz Assist에서 SMTP 설정을 만들면서
@Configuration과 @Bean을 사용했다.

@Configuration(proxyBeanMethods = false)
public class NotificationMailConfiguration {
}

@Configuration

Spring 설정을 모아두는 클래스라는 표시다.

이 안에서
Spring이 관리할 객체를 직접 등록할 수 있다.

@Bean

메서드가 반환하는 객체를
Spring Bean으로 등록한다.

@Bean
JavaMailSender bizAssistJavaMailSender(
        BizAssistMailProperties mailProperties
) {
    return new JavaMailSenderImpl();
}

이렇게 등록한 객체는
다른 곳에서 주입받아 사용할 수 있다.

@Component랑 차이

@Component
→ 클래스 자체를 Bean으로 등록

@Bean
→ 메서드가 만든 객체를 Bean으로 등록

직접 만든 클래스는 @Component 계열을 많이 쓰고

외부 라이브러리 객체처럼
생성 방법을 직접 정해야 할 때는 @Bean을 사용할 수 있다.

Biz Assist에서는 왜 썼나

SMTP 객체는

host
port
인증
SSL
timeout

같은 설정을 넣어서 만들어야 했다.

그래서 생성 과정을
NotificationMailConfiguration에 모아두고

완성된 JavaMailSender만
필요한 곳에서 주입받아 사용했다.

profile
개발자로 이 험난한 세상 살아가기

0개의 댓글