DAO类具有相同的@Qualifier
问题描述:
我有一个网站的源代码。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具有相同的名称/限定符。
它不会与其他人发生冲突吗?
答
Spring将首先检查类型,如果有任何歧义,那么只有它会检查@Qualifier中指定的名称。在你的情况下,这两个bean的类型是不同的,所以应该可以正常工作。
+0
有超过10个DAO类有这个相同的限定符。那么,我可以在DAO上删除这些限定符吗?这些似乎没用。我只是害怕限定词与JpaTransactionManager有关。谢谢。 – Mozzan
但是不同的类型 – A4L