2017-06-01 50 views
0

我有一个网站的源代码。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具有相同的名称/限定符。

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

+0

但是不同的类型 – A4L

回答

4

Spring将首先检查类型,如果有任何歧义,那么只有它会检查@Qualifier中指定的名称。在你的情况下,这两个bean的类型是不同的,所以应该可以正常工作。

+0

有超过10个DAO类有这个相同的限定符。那么,我可以在DAO上删除这些限定符吗?这些似乎没用。我只是害怕限定词与JpaTransactionManager有关。谢谢。 – Mozzan