복붙노트

[SPRING] javax.inject.Named annotation은 무엇을 위해 사용되어야 하는가?

SPRING

javax.inject.Named annotation은 무엇을 위해 사용되어야 하는가?

javax.inject 패키지를 이해하려고하는데 javax.inject.Named 어노테이션이 사용되는 것으로되어 있는지 명확하지 않습니다. Javadoc은 그 배경을 설명하지 않습니다.

Javadoc은 http://download.oracle.com/javaee/6/api/javax/inject/Named.html에 있습니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?

내 질문은 다음과 같습니다.

업데이트 1에는 @Named 및 @Qualifier에 대한 좋은 기사에서 @Named 및 @Qualifier에 대한 훌륭한 설명이 있습니다. @Named 및 @Qualifier http://java.dzone.com/articles/java-ee6-cdi-named-components 감사를위한 @xmedeko 아래의 코멘트.

해결법

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

    1.@Named를 사용하면 동일한 범위에 바인딩 된 동일한 유형의 여러 객체를 구별 할 수 있습니다.

    @Named를 사용하면 동일한 범위에 바인딩 된 동일한 유형의 여러 객체를 구별 할 수 있습니다.

    @Named("maxWaitTime")
    public long maxWaitTimeMs;
    
    @Named("minWaitTime")
    public long minWaitTimeMs;
    

    @Named 한정자가 없으면 인젝터는 어느 변수를 어떤 변수에 바인드할지 알 수 없습니다.

    @Named와 같은 기능을하는 주석을 작성하려면 주석을 생성 할 때 @Qualifier 주석을 사용하십시오. @Named를 보면 @Qualifier로 주석을 달았습니다.

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

    2.@Autowired 대신 Spring의 @Inject를 호출하여 Bean을 삽입한다. @ @ 콩을 선언하기 위해 Spring의 @Component 대신에 이름이 붙어있다.

    @Autowired 대신 Spring의 @Inject를 호출하여 Bean을 삽입한다. @ @ 콩을 선언하기 위해 Spring의 @Component 대신에 이름이 붙어있다.

    이러한 JSR-330 표준 주석은 Spring 주석과 동일한 방식으로 스캔되고 검색됩니다 (다음 jar가 클래스 경로에있는 한)

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

    3.# 2에 대해서는 JSR-330 사양에 따라 :

    # 2에 대해서는 JSR-330 사양에 따라 :

    따라서 어떤 객체를 주입 할 수 있는지를 결정하는 것은 공급자에게 달려 있습니다. 봄의 경우 모든 봄 콩입니다. AnnotationConfigApplicationContext를 사용할 때 JSR-330 주석으로 주석 된 클래스는 Spring bean으로 자동 추가됩니다.

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

    4.@Named 어노테이션의 주된 역할은 애플리케이션 내에서 (일반적으로 JSF EL 해결자를 통해) EL 문을 해석 할 목적으로 Bean을 정의하는 것이다. 주입은 이름을 사용하여 수행 할 수 있지만 CDI는 주입 점과 주입 할 콩을 주입하는 데 훨씬 더 풍부한 방법을 제공하기 때문에 CDI 주입이 어떻게 작동하는지 의미가 없습니다.

    @Named 어노테이션의 주된 역할은 애플리케이션 내에서 (일반적으로 JSF EL 해결자를 통해) EL 문을 해석 할 목적으로 Bean을 정의하는 것이다. 주입은 이름을 사용하여 수행 할 수 있지만 CDI는 주입 점과 주입 할 콩을 주입하는 데 훨씬 더 풍부한 방법을 제공하기 때문에 CDI 주입이 어떻게 작동하는지 의미가 없습니다.

  5. from https://stackoverflow.com/questions/5415261/what-is-javax-inject-named-annotation-supposed-to-be-used-for by cc-by-sa and MIT license