Java DAO类具有相同的@Qualifier

Java DAO类具有相同的@Qualifier,java,spring,Java,Spring,我有一个网站的源代码 这个网站使用spring,我对它的注入感到困惑 有一些DAO类,在这些DAO上有一个限定符: @Repository("myDao") @Qualifier("myTransactionManager") public class MyCategoryDao { } 但也有另一个bean具有相同的限定符名称 这个bean是一个JpaTransactionManager @Configuration @EnableTransactionManagement(mode =

我有一个网站的源代码

这个网站使用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具有相同的名称/限定符


它是否会与其他名称冲突?

Spring将首先检查类型,如果有任何歧义,则只检查@Qualifier中指定的名称。在您的例子中,这两个bean的类型是不同的,因此应该可以正常工作。

Spring将首先检查类型,如果有任何歧义,则只检查@Qualifier中指定的名称。在您的例子中,这两个bean的类型都不同,所以应该可以正常工作。

但是不同的类型但是不同的类型有10多个DAO类具有相同的限定符。那么,我可以删除DAO上的这些限定符吗?这些似乎没用。我只是担心资格赛与JpaTransactionManager有关。谢谢。有10多个DAO类具有相同的限定符。那么,我可以删除DAO上的这些限定符吗?这些似乎没用。我只是担心资格赛与JpaTransactionManager有关。谢谢