java DAO类具有相同的@Qualifier
我有一个网站的源代码
这个网站使用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 楼答案
Spring将首先检查类型,如果有任何歧义,则只检查@Qualifier中指定的名称。在您的例子中,这两种bean的类型不同,所以应该可以正常工作