我正在学习 Spring,正在学习 MKYong 的教程,但我陷入了 Spring DI - http://www.mkyong.com/spring/spring-di-via-setter-method/ .
尝试将其更改为 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”注释错误,并显示消息:@Bean 不适用于字段。
有人吗?
最佳答案
您不能将字段声明为 Bean
。
相反,你应该有类似的东西:
@Bean
public CsvOutputGenerator csvOutputGenerator() {
return new CsvOutputGenerator();
}
对应于:
<bean id="CsvOutputGenerator" class="com.mkyong.output.impl.CsvOutputGenerator" />
事实上,一个实例化的Java对象应该被声明为Bean,然后这个对象就可以在其他bean中用于Autowire。
关于java - @Bean不适用于字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47621297/