복붙노트

[SPRING] 주석을 사용하여 이름으로 봄 콩을 autowiring

SPRING

주석을 사용하여 이름으로 봄 콩을 autowiring

Spring 최신 버전에서는 주석을 @Autowired로 사용하여 bean을 autowire 할 수 있습니다. bean의 타입 (또는 생성자가 적용되어 있다면 생성자)을 사용하여 bean을 autowire 할 것이다. autowire = "byName"으로 Spring의 XML 파일에 주석을 넣지 않고 bean 이름을 기반으로 @Autowired 어노테이션을 사용할 수있는 방법이 있습니까?

해결법

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

    1.생성자 삽입 또는 다중 매개 변수 메소드 삽입이 필요하지 않는 한 JSR-250 @Resource를 by-name bean autowiring에 사용할 수 있습니다.

    생성자 삽입 또는 다중 매개 변수 메소드 삽입이 필요하지 않는 한 JSR-250 @Resource를 by-name bean autowiring에 사용할 수 있습니다.

    문서에서 :

  2. ==============================

    2.당신이 사용할 수있는:

    당신이 사용할 수있는:

    @Autowired
    @Qualifier("beanname")
    

    @Qualifier javadoc에 따르면

  3. ==============================

    3.나는 이름으로 autowiring을 엉망으로 만든 bean name proxy를 사용하고 있었다. @Resource는 타입에 대해 신경 쓰지 않기 때문에 그 문제가 없습니다. 이제 봄 개발자가 추천 한 이유 중 하나를 알게되었습니다 :-) 그냥 참고하시기 바랍니다.

    나는 이름으로 autowiring을 엉망으로 만든 bean name proxy를 사용하고 있었다. @Resource는 타입에 대해 신경 쓰지 않기 때문에 그 문제가 없습니다. 이제 봄 개발자가 추천 한 이유 중 하나를 알게되었습니다 :-) 그냥 참고하시기 바랍니다.

  4. ==============================

    4.DI 컨테이너에 등록 될 bean의 이름을 정의하려면 주석 자체에 이름을 전달할 수 있습니다. @Service ( "employeeManager").

    DI 컨테이너에 등록 될 bean의 이름을 정의하려면 주석 자체에 이름을 전달할 수 있습니다. @Service ( "employeeManager").

    다음 코드를 사용하여 autowire를 이름으로 활성화 할 수 있습니다.

    @Autowired
    @Qualifier("employeeManager")
    private EmployeeManagerService employeeManagerService;
    
  5. ==============================

    5.Bean의 Java 클래스 정의에서 @Component ( "beanname") 사용

    Bean의 Java 클래스 정의에서 @Component ( "beanname") 사용

    autowiring하는 동안 JSR 330 사용

    @ 주입 @Named (값 = "beanname")

  6. from https://stackoverflow.com/questions/11831261/autowiring-spring-bean-by-name-using-annotation by cc-by-sa and MIT license