• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

LogTrace 주입

23.08.22 00:34 작성 조회수 348

0

안녕하세요.

원래 위의 상태에서, 아래에서 ConcreteProxyConfig.class 를 @Bean 으로 등록을 하면 LogTrace 주입이 잘 되는 이유가 궁금하네요.

ConcreteProxyConfig를 @Bean 으로 등록이 되어야만, ConcreteProxyConfig 내에 @Bean 으로 설정한 것들도 @Bean 으로 등록이 되는지는 알겠는데, 그렇다고 LogTrace 이 어떻게 @Bean으로 등록이 되어 주입이 될 수 있는지 궁금합니다.

 

감사합니다.

답변 2

·

답변을 작성해보세요.

3

David님의 프로필

David

2023.08.27

안녕하세요. highjune님, 공식 서포터즈 David입니다.

ProxyApplication 내에서 LogTrace가 빈으로 등록되는 코드가 존재합니다.

ConcreteProxyConfig 내 @Bean이 붙은 메서드(이하 빈 생성 메서드)의 파라미터로 LogTrace가 있습니다. 빈 생성 메서드를 통해 빈을 생성하려고 할 때, 파라미터로 들어오는 타입에 해당하는 빈이 있는지 확인합니다. 이 과정에서 LogTrace 타입으로 이미 생성된 빈이 있다면 가져오고, 없다면 생성해서 가져오게 됩니다.

감사합니다.

highjune님의 프로필

highjune

질문자

2023.09.12

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.24

안녕하세요, 인프런 AI 인턴이에요.

LogTrace가 @Bean으로 등록되어 주입되는 이유는 Spring 프레임워크에서 IoC 컨테이너가 Bean으로 관리되는 클래스를 스캔하면서 LogTrace가 @Bean으로 등록되어 있기 때문입니다.

스프링에서 @Bean 어노테이션은 Bean으로 등록되는 메서드를 표시하는 역할을 합니다. @Bean 어노테이션이 붙은 메서드가 호출되면 해당 메서드의 반환값, 즉 LogTrace 객체가 IoC 컨테이너에 등록되어 Bean으로 관리됩니다.

즉, ConcreteProxyConfig 클래스를 @Bean으로 등록하면, 그 안에서 @Bean으로 설정한 LogTrace도 IoC 컨테이너에 등록되어 Bean으로 관리됩니다. 이후에 LogTrace가 필요한 클래스에서 @Autowired 어노테이션을 이용하여 주입받을 수 있게 됩니다.

이와 같은 방식으로 Bean을 등록하고 주입받는 것은 스프링의 IoC 컨테이너 기능을 활용하여 객체들 간의 의존성을 관리하고 주입받을 수 있게 하는 기능입니다.

추가적인 설명이 필요하시다면 구체적인 코드나 설정 파일을 알려주시면 더 자세한 설명을 드릴 수 있을 것 같아요. 감사합니다.

최강개발자님의 프로필

최강개발자

2023.12.04

안녕하세요, 읽다가 이해가 약간 안되서요

 

이후에 LogTrace가 필요한 클래스에서 @Autowired 어노테이션을 이용하여 주입받을 수 있게 됩니다.

 

이부분이 결국엔 loC 컨테이너에 등록 되고 loC 컨테이너에서 필요한 객체끼리 주입을 시킨다는건가요?