Java @Bean不适用于字段
我正在学习Spring,做MKYong的教程,我被困在Spring DI- 试图将其更改为Java配置,但@Bean注释给出了错误,如主题顶部所示 IOutputGenerator.java:Java @Bean不适用于字段,java,spring,spring-mvc,intellij-idea,Java,Spring,Spring Mvc,Intellij Idea,我正在学习Spring,做MKYong的教程,我被困在Spring DI- 试图将其更改为Java配置,但@Bean注释给出了错误,如主题顶部所示 IOutputGenerator.java: public Interface IOutputGenerator{ public void generateOutput(); } public class CsvOutputGenerator.java implements IOutputGenerator{ public void
public Interface IOutputGenerator{
public void generateOutput();
}
public class CsvOutputGenerator.java implements IOutputGenerator{
public void generateOutput(){
System.out.println("CSV Output gen");
}
}
CsvOutputGenerator.java:
public Interface IOutputGenerator{
public void generateOutput();
}
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。您不能声明为
Bean
字段
相反,您应该有如下内容:
@Bean
public CsvOutputGenerator csvOutputGenerator() {
return new CsvOutputGenerator();
}
这是对应于:
<bean id="CsvOutputGenerator" class="com.mkyong.output.impl.CsvOutputGenerator" />
事实上,一个实例化的Java对象应该声明为Bean,然后这个对象就可以在其他Bean中用于Autowire。非常感谢你的帮助,我现在看到了。非常感谢你的帮助,我现在看到了。建议:不要使用这些不可靠和过时的资源来学习Spring,官方文件经过完善和更新。除了“枯燥”但详尽无遗之外,如果你想直接付诸行动,它们还有烹饪书的风格。建议:不要使用这些不可靠和过时的资料来学习Spring,官方文件经过了完善和更新。除了“干巴巴的”,但详尽的,他们有食谱风格,如果你想直接投入行动。