>Java >Java베이스 >@autowired와 @resource의 차이점은 무엇입니까?

@autowired와 @resource의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-11-17 14:21:393661검색

차이점: 1. @Autowired는 Spring에서 제공되고, @Resource는 J2EE에서 제공되며 JDK1.6 이상이 필요합니다. 2. @Autowired는 byType에 따라서만 주입되고, @Resource는 기본적으로 byName에 따라 자동으로 주입됩니다. byType에 따른 주입도 제공됩니다.

@autowired와 @resource의 차이점은 무엇입니까?

관련 권장 사항: "Java Video Tutorial"

Spring 3.X에서는 @Autowired 및 @Resource가 어셈블리에 자주 사용됩니다.

이 두 주석의 차이점이 무엇인지 궁금하지 않을 수 없습니다. ? ?

유사점:

@Resource는 @Autowired와 동일하며 필드 또는 속성의 setter 메서드에 표시될 수 있습니다.

차이점:

(1) 제공자: @Autowired는 org.springframework.beans.factory.annotation.Autowired에서 제공됩니다. 즉, @Resource는 Spring에서 제공됩니다. , 이는 J2EE에서 제공되며 JDK1.6 이상이 필요합니다.

(2) 주입 방법: @Autowired는 byType에 따라서만 주입합니다. @Resource는 기본적으로 byName에 따라 주입하고 또한 byType에 따라 주입을 제공합니다.

(3) 속성: @Autowired는 유형별로 종속 객체를 조합합니다. 기본적으로 종속성이 필요합니다. 개체가 존재해야 합니다. null 값이 허용되는 경우 필수 속성을 false로 설정할 수 있습니다. 이름으로 어셈블리를 사용하려면 @Qualifier 주석과 함께 사용할 수 있습니다. @Resource에는 이름과 유형이라는 두 가지 중요한 속성이 있습니다. name 속성은 byName을 지정하며, name 속성이 지정되지 않은 경우 해당 필드에 Annotation이 추가되면 해당 필드의 이름이 Setter에 Annotation될 때 기본적으로 Bean 이름으로 사용됩니다. 속성의 메소드에서는 속성 이름이 기본적으로 Bean 이름으로 사용됩니다. @Resource가 이름 속성을 지정하지 않고 기본 이름에 따라 종속 개체를 찾을 수 없는 경우 @Resource 주석은 유형별로 어셈블리로 대체됩니다. 그러나 name 속성이 지정되면 이름으로만 조합할 수 있습니다.

@Resource Assembly Sequence

 1. 이름과 유형이 동시에 지정되면 어셈블리용 Spring 컨텍스트에서 일치하는 유일한 Bean이 발견되지 않으면 예외가 발생합니다

2. name이 지정되면 어셈블리 컨텍스트에서 일치하는 이름(id)을 가진 bean을 찾습니다. bean이 없으면 예외가 발생합니다. 3. type이 지정되면 일치하는 유형의 bean만 발생합니다. Bean이 없거나 여러 개 발견되면 예외가 발생합니다

 4. 이름과 유형이 모두 지정되지 않으면 byName에 따라 자동으로 어셈블리가 수행됩니다. 일치하는 항목이 없으면 일치를 위해 원래 유형으로 돌아가고, 일치하는 경우 자동으로 어셈블됩니다.

필드에 @Resource 주석을 사용하는 것이 좋습니다. 또한 이 주석은 J2EE에 속하므로 Spring과의 결합을 줄여 코드가 더욱 우아해 보입니다.

더 많은 프로그래밍 관련 지식을 보려면

프로그래밍 학습 웹사이트

를 방문하세요! !

위 내용은 @autowired와 @resource의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바 미들웨어란?다음 기사:자바 미들웨어란?