我有网站的源代码。
这个网站使用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具有相同的名称/限定符。
不会与其他人发生冲突吗?
答案 0 :(得分:3)
Spring将首先检查类型,如果有歧义,则只检查@Qualifier中指定的名称。在您的情况下,两种bean的类型都不同,因此应该可以正常工作。