创建在类路径资源applicationContext.xml中定义的名为“”Xmlmessageservice“”的bean时出错:设置属性值时出错;嵌套异常是bean类[com.swami.demo.springin5steps.xml.Xml ]的无效属性“”messageService“”
我是spring的新手,我花了一个多小时来找出这个错误是什么,有人能帮我解决这个错误吗?
Xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.swami.demo.springin5steps.xml"></context:component-scan>
<bean id="twitterservice" class="com.swami.demo.springin5steps.xml.TwitterxmlService">
</bean>
<bean id="Xmlmessageservice" class="com.swami.demo.springin5steps.xml.Xmlmessageservice">
<property name="messageService" ref="twitterservice"></property>
</bean>
</beans>
TwitterXmlService.java
package com.swami.demo.springin5steps.xml;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.swami.demo.constructorbased.MessageService;
public class TwitterxmlService{
private Logger logger=LoggerFactory.getLogger(TwitterxmlService.class);
public void sendMessage(String msg) {
// TODO Auto-generated method stub
logger.info("TwitterService->{}",msg);
}
}
XmlMessageService.java
package com.swami.demo.springin5steps.xml;
public class Xmlmessageservice {
//private Logger logger=LoggerFactory.getLogger(Xmlmessageservice.class);
public TwitterxmlService messageService;
public Xmlmessageservice(TwitterxmlService messageService) {
this.messageService=messageService;
}
public TwitterxmlService getMessageService() {
return messageService;
}
public void message(String msg) {
messageService.sendMessage(msg);
}
}
DriverClass
package com.swami.demo.springin5steps;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.swami.demo.springin5steps.xml.Xmlmessageservice;
public class SpringIn5StepsXMLApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Xmlmessageservice xmessage=applicationContext.getBean(Xmlmessageservice.class);
xmessage.message("hi");
applicationContext.close();
}
}
发布于 2020-08-14 06:36:20
在创建bean期间尝试将twitterservice引用分配给Xmlmessageservice构造函数中的字段messageService时,它找不到该字段的设置器。对于赋值,它需要字段messageService的设置器方法
Xmlmessageservice类中缺少代码:
public void setMessageService(TwitterxmlService messageService) {
this.messageService = messageService;
}
注意:也请对bean ids、字段名和类名使用更好的命名策略。
Bean id,字段名称-使用驼峰大小写(示例: xmlMessageService - bean id)
类名- Pascal大小写(示例: XmlMessageService -类名)
https://stackoverflow.com/questions/63333443
复制相似问题