>

웹 사이트의 소스 코드가 있습니다.

이 웹 사이트는 스프링을 사용하는데, 주입에 대해 혼란 스럽습니다.

이 DAO에는 한정자가있는 DAO 클래스가 있습니다 :

@Repository("myDao")
@Qualifier("myTransactionManager")
public class MyCategoryDao {
}

그러나 한정자의 이름이 같은 다른 빈도 있습니다.

이 빈은 JpaTransactionManager입니다.

@Configuration
@EnableTransactionManagement(mode = AdviceMode.PROXY)
@ComponentScan(basePackages = "com.my.repository")
public class DatabaseConfig {
    @Primary
    @Bean(name = "myTransactionManager")
    public JpaTransactionManager jpaTransactionManager(
    @Named("myEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
    }
}

빈과 DAO의 이름/자격이 같은 이유를 모르겠습니다.

다른 것들과 충돌하지 않겠습니까?

  • 답변 # 1

    봄은 먼저 타입을 확인하고, 모호한 것이 있으면 @Qualifier에 지정된 이름 만 확인합니다. 귀하의 경우 두 콩의 유형이 다르므로 정상적으로 작동합니다.

  • 이전 java - 돼지의 모든 n 개 행 값 합계
  • 다음 rest - Android 앱에서 Salesforce에 사례를 만들고 싶습니다