복붙노트

[SPRING] Spring 설정 파일에서 bean id와 name을 사용하는 차이점

SPRING

Spring 설정 파일에서 bean id와 name을 사용하는 차이점

Spring 구성 파일의 요소에 id 속성과 name 속성을 사용하는 것과 다른 점이 있습니까?

해결법

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

    1.Spring 레퍼런스, 3.2.3.1 Bean 명명하기 :

    Spring 레퍼런스, 3.2.3.1 Bean 명명하기 :

    따라서 기본적으로 id 속성은 XML id 속성 표준을 따르는 반면 name은 좀 더 유연합니다. 일반적으로 말해서 나는 거의 독점적으로 이름을 사용합니다. 그냥 "봄 - y"더 보인다.

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

    2.Spring 3.1부터 id 속성은 xsd : string이고 name 속성과 같은 문자 범위를 허용합니다.

    Spring 3.1부터 id 속성은 xsd : string이고 name 속성과 같은 문자 범위를 허용합니다.

    ID와 이름의 유일한 차이점은 이름에는 쉼표, 세미콜론 또는 공백으로 구분 된 여러 별칭을 포함 할 수 있지만 id는 단일 값이어야한다는 것입니다.

    Spring 3.2 문서에서 :

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

    3.둘 중 하나가 작동합니다. 필요에 따라 다릅니다. 빈 식별자에 특수 문자 (예 : /viewSummary.html)가 포함되어 있으면 유효한 XML ID가 아니기 때문에 빈 ID로 사용할 수 없습니다. 이 경우 빈 id를 정의하지 않고 bean 이름을 대신 제공 할 수 있습니다. name 속성은 또한 주어진 빈에 대해 여러 개의 식별자를 지정할 수 있기 때문에 빈에 대한 별명을 정의하는 데 도움이됩니다.

    둘 중 하나가 작동합니다. 필요에 따라 다릅니다. 빈 식별자에 특수 문자 (예 : /viewSummary.html)가 포함되어 있으면 유효한 XML ID가 아니기 때문에 빈 ID로 사용할 수 없습니다. 이 경우 빈 id를 정의하지 않고 bean 이름을 대신 제공 할 수 있습니다. name 속성은 또한 주어진 빈에 대해 여러 개의 식별자를 지정할 수 있기 때문에 빈에 대한 별명을 정의하는 데 도움이됩니다.

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

    4.ApplicationContext xml에 ID와 name을 정의하는 데 차이가 있습니까? 아니     3.1 (봄)부터 id는 xsd : string 유형으로 정의됩니다.     그것은 이름에서 정의 된 문자가 모두 ID에서도 허용된다는 것을 의미합니다.     이것은 Spring 3.1 이전에는 불가능했습니다.

    ApplicationContext xml에 ID와 name을 정의하는 데 차이가 있습니까? 아니     3.1 (봄)부터 id는 xsd : string 유형으로 정의됩니다.     그것은 이름에서 정의 된 문자가 모두 ID에서도 허용된다는 것을 의미합니다.     이것은 Spring 3.1 이전에는 불가능했습니다.

    Id와 같은 경우 이름을 사용하는 이유는 무엇입니까?     응용 프로그램의 각 구성 요소가 해당 구성 요소 자체에 고유 한 bean 이름을 사용하여 공통 종속성을 참조하도록 허용하는 것과 같은 일부 상황에 유용합니다.

    For example, the configuration metadata for subsystem A may refer to a DataSource via the name subsystemA-dataSource. The configuration metadata for subsystem B may refer to a DataSource via the name subsystemB-dataSource. When composing the main application that uses both these subsystems the main application refers to the DataSource via the name myApp-dataSource. To have all three names refer to the same object you add to the MyApp configuration metadata the following 
    
    <bean id="myApp-dataSource" name="subsystemA-dataSource,subsystemB-dataSource" ..../>
    
    Alternatively, You can have separate xml configuration files for each sub-system and then you can make use of
    alias to define your own names.
    
    <alias name="subsystemA-dataSource" alias="subsystemB-dataSource"/>
    <alias name="subsystemA-dataSource" alias="myApp-dataSource" />
    
  5. from https://stackoverflow.com/questions/874505/difference-between-using-bean-id-and-name-in-spring-configuration-file by cc-by-sa and MIT license