Maison  >  Questions et réponses  >  le corps du texte

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

@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

巴扎黑巴扎黑2744 Il y a quelques jours556

répondre à tous(2)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:51:33

    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);
        }
    }

    répondre
    0
  • 阿神

    阿神2017-04-18 10:51:33

    Incompréhension

    Peut être utilisé avec @Bean @Qualifier

    répondre
    0
  • Annulerrépondre