DAO类具有相同的@Qualifier

时间:2017-06-01 10:19:30

标签: java spring

我有网站的源代码。

这个网站使用spring,我对注射感到困惑。

在这些带有限定符的DAO上有一些DAO类:

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

}

但是还有另一个与限定符同名的bean。

这个bean是一个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) {

    }
}

我不知道为什么bean和DAO具有相同的名称/限定符。

不会与其他人发生冲突吗?

1 个答案:

答案 0 :(得分:3)

Spring将首先检查类型,如果有歧义,则只检查@Qualifier中指定的名称。在您的情况下,两种bean的类型都不同,因此应该可以正常工作。