我收到此错误
org.springframework.beans.factory.BeanCreationException:
Could not autowire method:
这是我的spring的xml配置。
<bean ...>
...
<property name="InfoModel" ref="InfoModel"></property>
</bean>
这是我在Java类中自动装配的代码
private InfoModel infoModel;
@Autowired
public void setInfoModel(InfoModel infoModel) {
this.infoModel= infoModel;
}
我错过了什么。我怀疑我应该制作{{1>} InfoModel 以使其自动装配?
Interface
答案 0 :(得分:11)
如果你@Autowired
,则不需要在xml中将其标记为属性。只需将InfoModel声明为XML格式的bean,并从已注入property
InfoModel
总结
1 您需要在XML中为InfoModel
2 您需要从XML中删除property
3 确保您已通过添加
来启动上下文注释<context:annotation-config />
答案 1 :(得分:1)
如果堆栈跟踪显示没有所述类型的匹配bean,那就错了。
将InfoModel bean添加到spring应用程序上下文,例如通过在相同的xml配置中声明bean:
<bean id="InfoModel" class="com.model.InfoModel" />
顺便说一句。你不应该大写bean标识符的第一个字母,遵循与变量相同的命名约定,即。 lowerCamelCase。 自动装配和显式注入依赖关系也是多余的。
答案 2 :(得分:0)
我认为你应该在私人信息......宣言之前写@Autowired。并如jigar所述,从xml中删除条目。
答案 3 :(得分:0)
您是否使用类型级别注释InfoModel
,@Component
或@Service
正确注释了您的@Repository
班级。所有这些都非常相似。如果您的InfoModel
没有正确注释,您将收到这个着名的“No matching bean ...”错误。尝试使用InfoModel
为@Component
课程注释如下:
@Component
public class InfoModel {
// code
}