java - 为什么@Import引入一个config不能使用这个config中@Bean注解的方法?
问题描述
@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()); }}
就找不到这个method
问题解答
回答1:基本概念错误,sgtPeppers()是调用本类的方法,没有定义当然编译错误,和spring无关。这么改:
@Configuration@Import(CDConfig.class)public class CDPlayerConfig { @Bean public CDPlayer cdPlay(CompactDisc cd){return new CDPlayer(cd); }}回答2:
理解有误
可以使用 @Bean @Qualifier配合
相关文章:
1. css3 - 新版支付宝 账单页面滑动时月份栏被下一个月给顶上去是什么效果2. docker绑定了nginx端口 外部访问不到3. objective-c - 使用axios 通过vuex mutation修改数据 getter第一次获取失败 第二次成功4. docker网络端口映射,没有方便点的操作方法么?5. javascript - Vue 自定义控件v-model双向绑定6. javascript - 关于js原生事件的绑定与解除绑定7. 把h5放入webview里面,h5页面上下可以回弹,怎么可以去掉该效果8. python - celery beat 调度如何运行期间动态添加任务?9. javascript - yo创建angular报错10. docker start -a dockername 老是卡住,什么情况?

网公网安备