복붙노트

[SPRING] Spring @Component 또는 다른 파생물을 사용하지 않고 구성 요소를 자동 줄 바꿈하는 방법

SPRING

Spring @Component 또는 다른 파생물을 사용하지 않고 구성 요소를 자동 줄 바꿈하는 방법

나는 (여전히 @Autowired 어노테이션을 사용하는) 컴포넌트를 autowire하고 싶지만 @Component (또는 다른 유사한 어노테이션)을 가질 필요는 없다. 내가 어떻게 할까?

public class A {

    @Autowired
    private class B b;

}

@Component
public class B {

}

이것은 우리가 필요로하지 않는 한 A를 생성 할 필요없이 클래스 A의 autowiring을 허용하기에 편리 할 것입니다 (그렇지 않으면 클래스 이름을 사용한 리플렉션에 의해 즉석에서).

해결법

  1. ==============================

    1.나는 당신의 질문에 정확하게 이해한다면, 확실하지 않습니다. 그렇지만 어떤 주석이나 xml 정의를 통해 bean A를 표시하지 않고 bean B를 삽입하려면 SpringBeanAutowiringSupport

    나는 당신의 질문에 정확하게 이해한다면, 확실하지 않습니다. 그렇지만 어떤 주석이나 xml 정의를 통해 bean A를 표시하지 않고 bean B를 삽입하려면 SpringBeanAutowiringSupport

    public class A {
    
        @Autowired
        private class B b;
    
        public A{
            SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this); 
        }
    
    }
    
  2. ==============================

    2.주입 및 자동 와이어 링에는 @Component가 필요하지 않습니다. 그들은 콩이 필요합니다. @Component는 주석 된 유형에 대해 생성 된 빈을 가져야한다고 명시합니다. bean을 다른 방법으로 정의 할 수 있습니다 : XML 컨텍스트 구성의 선언, @Configuration 클래스의 @Bean 메소드 등

    주입 및 자동 와이어 링에는 @Component가 필요하지 않습니다. 그들은 콩이 필요합니다. @Component는 주석 된 유형에 대해 생성 된 빈을 가져야한다고 명시합니다. bean을 다른 방법으로 정의 할 수 있습니다 : XML 컨텍스트 구성의 선언, @Configuration 클래스의 @Bean 메소드 등

    마지막 문장은별로 의미가 없습니다. Bean을 작성하지 않고는 bean의 injection 대상을 처리 할 수 ​​없습니다. 또한 bean을 작성하지 않고 주입 할 수 없습니다. (범위에 적용하면 bean은 실제 인스턴스가 아닌 대상 소스 / 프록시를 참조 할 수 있습니다.) 아마도 @Lazy를 원할 것입니다.

  3. from https://stackoverflow.com/questions/24373237/spring-how-to-autowire-a-component-without-using-component-or-other-derivatives by cc-by-sa and MIT license