-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
LogTrace 주입
23.08.22 00:34 작성 조회수 351
0
안녕하세요.
원래 위의 상태에서, 아래에서 ConcreteProxyConfig.class 를 @Bean 으로 등록을 하면 LogTrace 주입이 잘 되는 이유가 궁금하네요.
ConcreteProxyConfig를 @Bean 으로 등록이 되어야만, ConcreteProxyConfig 내에 @Bean 으로 설정한 것들도 @Bean 으로 등록이 되는지는 알겠는데, 그렇다고 LogTrace 이 어떻게 @Bean으로 등록이 되어 주입이 될 수 있는지 궁금합니다.
감사합니다.
답변을 작성해보세요.
3
David
2023.08.27
안녕하세요. highjune님, 공식 서포터즈 David입니다.
ProxyApplication 내에서 LogTrace가 빈으로 등록되는 코드가 존재합니다.
ConcreteProxyConfig 내 @Bean이 붙은 메서드(이하 빈 생성 메서드)의 파라미터로 LogTrace가 있습니다. 빈 생성 메서드를 통해 빈을 생성하려고 할 때, 파라미터로 들어오는 타입에 해당하는 빈이 있는지 확인합니다. 이 과정에서 LogTrace 타입으로 이미 생성된 빈이 있다면 가져오고, 없다면 생성해서 가져오게 됩니다.
감사합니다.
0
인프런 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 컨테이너에서 필요한 객체끼리 주입을 시킨다는건가요?
답변 2