2017-12-03 1 views
0

봄을 배우고 MKYong의 튜토리얼을 진행하며 스프링 DI-http://www.mkyong.com/spring/spring-di-via-setter-method/에 머물러 있습니다.@Bean이 현장에 적용되지 않습니다.

Java 구성으로 변경하려고 시도했지만 @Bean 주석은 주제 상단과 같이 오류가 발생합니다.

IOutputGenerator.java :

public Interface IOutputGenerator{ 
    public void generateOutput(); 
} 

CsvOutputGenerator.java :

public class CsvOutputGenerator.java implements IOutputGenerator{ 
    public void generateOutput(){ 
     System.out.println("CSV Output gen"); 
    } 
} 

AppConfig.java :

@Configuration 
public class AppConfig{ 
    @Bean 
    public CsvOutputGenerator csvOutputGenerator; 
} 

그리고 IntelliJ를 나에게와 마찬가지로 잘못이 "@Bean"주석을 강조 message : @Bean은 필드에 적용 할 수 없습니다.

누구나?

+0

조언의 말씀 : 봄을 배우기위한 그러한 근사하고 오래된 소스를 사용하지 마십시오. 공식 문서는 완벽하고 최신 상태로 연마됩니다. "건조하고"포괄적 인 [참조 문서] (https://docs.spring.io/spring/docs/5.0.2.RELEASE/spring-framework-reference/) 외에도 요리 책 스타일 [가이드] (https : //spring.io/guides) 당신이 행동으로 바로 뛰어 오르고 싶다면. – kryger

답변

0

Bean 필드로 선언 할 수 없습니다. 해당하다

@Bean 
public CsvOutputGenerator csvOutputGenerator() { 
    return new CsvOutputGenerator(); 
} 

:

대신, 당신은 같은 것을해야

<bean id="CsvOutputGenerator" class="com.mkyong.output.impl.CsvOutputGenerator" /> 

사실, 인스턴스화 된 Java 객체가 Bean으로 선언되어야한다,이 오브젝트는 것 다른 콩의 Autowire에서 사용할 수 있습니다.

+0

도움을 주셔서 감사합니다. 지금이 사실을 알고 있습니다. –

관련 문제