Spring @Autowired 사용법 이해
귀하의 질문에서 Spring의 @Autowired 주석 활용을 이해하는 데 어려움을 겪었습니다. 다음은 귀하의 쿼리를 해결하기 위한 포괄적인 설명입니다.
Autowired 주석 및 해당 애플리케이션
@Autowired 주석은 Bean 종속성 생성 프로세스를 자동화하여 수동 구성이 필요하지 않습니다. XML 파일에서. 주입이 필요한 속성, 생성자 매개변수 및 setter 메소드를 식별하고 적절한 Bean을 자동으로 주입합니다.
예제 1에서는 @Autowired 주석이 setMovieFinder 메소드에 적용되어 Spring이 MovieFinder 인터페이스의 인스턴스를 movieFinder 속성에 삽입해야 합니다.
예제에서 2에서는 @Autowired 주석이 prepare 메소드에 사용되는데, 이는 Spring이 두 개의 Bean, MovieCatalog 및 CustomerPreferenceDao를 해당 속성에 주입해야 함을 의미합니다.
Bean 모호성 해결
여러 빈이 동일한 인터페이스를 구현할 때 Spring은 어떤 빈을 주입할지 결정하기 위해 한정자 주석을 사용합니다. 귀하의 예에서 다음과 같이 한정자 주석을 추가하면 bean 모호성이 해결됩니다.
@Autowired @Qualifier("redBean") private Color color;
이것은 redBean bean이 color 속성에 주입되어야 함을 지정합니다. 이에 따라 XML 파일에서 빈을 정의할 수 있습니다.
<bean>
빈 스캔 구성
빈으로 관리해야 하는 클래스를 자동으로 식별하려면 다음을 사용할 수 있습니다. <컨텍스트:구성요소 스캔> 애플리케이션 컨텍스트 XML 파일의 태그:
<context:component-scan base-package="com.mycompany.movies"/>
이는 지정된 패키지 및 하위 패키지에서 @Component, @Controller 또는 @Repository로 주석이 달린 클래스를 검색하고 이에 대한 Bean 정의를 생성합니다.
대체 종속성 주입 메커니즘
@Inject is @Autowired와 유사하지만 Spring에만 국한되지 않는 Java 표준 주석입니다. 또 다른 옵션은 @Autowired와 @Qualifier의 기능을 결합한 @Resource입니다.
모범 사례
유지관리성 향상을 위해 @Inject 또는 @Resource를 사용하는 것이 좋습니다. @Autowired 대신. 또한 메서드보다는 생성자에 종속성 주입을 적용하여 조기 유효성 검사를 활성화하고 NullPointerException을 방지하는 것이 좋습니다.
위 내용은 종속성 주입을 위해 Spring의 @Autowired 주석이 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!