2017-06-01 51 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