java - 为什么@Import引入一个config不能使用这个config中@Bean注解的方法?
巴扎黑
巴扎黑 2017-04-18 10:49:33
0
2
605
@Configuration
public class CDPlayerConfig {

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

}

这个是能执行的

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

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

@Configuration
public 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

巴扎黑
巴扎黑

répondre à tous(2)
伊谢尔伦

Le concept de base est faux. sgtPeppers() est une méthode pour appeler cette classe si elle n'est pas définie, cela provoquera bien sûr une erreur de compilation et n'a rien à voir avec Spring.
Changez-le comme ceci :

@Configuration
@Import(CDConfig.class)
public class CDPlayerConfig {
 @Bean
    public CDPlayer cdPlay(CompactDisc cd){
        return new CDPlayer(cd);
    }
}
阿神

Incompréhension

Peut être utilisé avec @Bean @Qualifier

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal