您的位置:首頁技術文章
文章詳情頁

java - 為什么@Import引入一個config不能使用這個config中@Bean注解的方法?

瀏覽:151日期:2024-01-30 08:22:30

問題描述

@Configurationpublic class CDPlayerConfig { @Bean public CompactDisc sgtPeppers(){return new SgtPeppers(); }@Bean public CDPlayer cdPlay(){return new CDPlayer(sgtPeppers()); }}

這個是能執行的

@Beanpublic CompactDisc sgtPeppers(){ return new SgtPeppers();}

放到另一個配置文件中,然后通過@Import引入

@Configurationpublic class CDConfig { @Bean public CompactDisc sgtPeppers(){return new SgtPeppers(); }}

引入外部的配置文件

@Configuration@Import(CDConfig.class)public class CDPlayerConfig { @Bean public CDPlayer cdPlay(){return new CDPlayer(sgtPeppers()); }}

就找不到這個methodjava - 為什么@Import引入一個config不能使用這個config中@Bean注解的方法?

問題解答

回答1:

基本概念錯誤,sgtPeppers()是調用本類的方法,沒有定義當然編譯錯誤,和spring無關。這么改:

@Configuration@Import(CDConfig.class)public class CDPlayerConfig { @Bean public CDPlayer cdPlay(CompactDisc cd){return new CDPlayer(cd); }}回答2:

理解有誤

可以使用 @Bean @Qualifier配合

標簽: java
相關文章:
国产综合久久一区二区三区