您的位置:首页技术文章
文章详情页

java - 为什么@Import引入一个config不能使用这个config中@Bean注解的方法?

【字号: 日期:2024-01-30 08:22:30浏览:37作者:猪猪

问题描述

@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
相关文章: