> Java > java지도 시간 > @Resource 대 @Autowired: 언제 어떤 종속성 주입 주석을 선택해야 합니까?

@Resource 대 @Autowired: 언제 어떤 종속성 주입 주석을 선택해야 합니까?

DDD
풀어 주다: 2024-11-13 15:37:02
원래의
698명이 탐색했습니다.

@Resource vs @Autowired: When to Choose Which Dependency Injection Annotation?

@Resource vs @Autowired: A Deeper Dive

DI(의존성 주입) 영역에서 주석은 객체 간의 관계. 널리 사용되는 두 가지 주석은 @Resource(JSR-250에서)와 @Autowired(Spring 프레임워크에서)입니다. 그렇다면 어떤 주석을 선택해야 할까요?

@Resource: 이름 기반 검색

@Resource는 이름으로 리소스를 검색하는 메커니즘 역할을 합니다. 이 이름은 주석의 "name" 매개변수를 통해 지정되거나 주석이 달린 필드 또는 setter의 이름에서 추론될 수 있습니다. @Resource를 활용하면 특정 식별자로 알려진 리소스를 명시적으로 요청합니다.

@Autowired: Type-Based Wiring

반면에 @Autowired(또는 Java EE의 @Inject)는 필수 유형과 일치하는 구성 요소를 연결하려고 시도합니다. 주석이 달린 필드나 설정자의 유형을 검사하고 호환 가능한 빈에 대한 애플리케이션 컨텍스트를 검색하여 이를 수행합니다. 원하는 경우 @Qualifier 주석을 @Autowired와 함께 사용하여 원하는 경우 특정 빈 이름으로 검색 범위를 좁힐 수 있습니다.

개념적 차이점

@Resource와 빈의 근본적인 차이점 @Autowired는 그들의 거짓말을 접근 방식:

  • @Resource: 이름으로 알려진 특정 리소스를 검색하는 데 중점을 둡니다.
  • @Autowired: 자동 연결을 목표로 합니다. 그에 맞는 적절한 구성요소로 type.

Spring의 @Resource 동작

@Resource에 대한 JSR-250 사양은 이름 기반 검색을 우선시하지만 Spring의 @Resource 구현에는 폴백이 포함됩니다. 기구. 이름 기반 확인이 실패하면 기본적으로 @Autowired와 유사한 유형 기반 확인이 수행됩니다. 개발자가 실수로 유형 기반 자동 배선에 @Resource를 사용할 수 있으므로 이러한 편의 기능은 혼란을 초래할 수 있습니다.

위 내용은 @Resource 대 @Autowired: 언제 어떤 종속성 주입 주석을 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿