java – 设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:

前端之家收集整理的这篇文章主要介绍了java – 设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图使用Spring实用程序ResultSetExtractor从MySQL数据库获取数据,但我得到以下异常:

  1. Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'edao' defined in class path resource [applicationContext2.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'jdbcTemplate' of bean class [org.resultset.EmployeeDao]: Bean property 'jdbcTemplate' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
  2. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.applyPropertyValues(AbstractAutowireCapablebeanfactory.java:1344)
  3. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.populateBean(AbstractAutowireCapablebeanfactory.java:1067)
  4. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:511)
  5. at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:450)
  6. at org.springframework.beans.factory.support.Abstractbeanfactory$1.getObject(Abstractbeanfactory.java:290)
  7. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
  8. at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:287)
  9. at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:189)
  10. at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:562)
  11. at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:871)
  12. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
  13. at org.springframework.context.support.ClassPathXmlApplicationContext.beanfactory.applyPropertyValues(AbstractAutowireCapablebeanfactory.java:1341)
  14. ... 13 more

Employee.java

  1. public class Employee {
  2. private int id;
  3. private String name;
  4. private float salary;
  5. public int getId() {
  6. return id;
  7. }
  8. public void setId(int id) {
  9. this.id = id;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. public float getSalary() {
  18. return salary;
  19. }
  20. public void setSalary(float salary) {
  21. this.salary = salary;
  22. }
  23. public Employee(int id,String name,float salary) {
  24. super();
  25. this.id = id;
  26. this.name = name;
  27. this.salary = salary;
  28. }
  29. public Employee()
  30. {
  31. }
  32. }

EmployeeDao.java

  1. public class EmployeeDao {
  2. private JdbcTemplate template;
  3. public void setTemplate(JdbcTemplate template) {
  4. this.template = template;
  5. }
  6. public ListsqlException,DataAccessException {
  7. List

Test.java

  1. public class Test {
  2. public static void main(String[] args) {
  3. ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext2.xml");
  4. EmployeeDao dao=(EmployeeDao)ctx.getBean("edao");
  5. List

和applicationContext2.xml

  1. MysqL.jdbc.Driver" />
  2. MysqL://loclahost:3306/test1" />

这些都是我正在使用的java文件.它说setter的返回类型与getter不匹配,但我检查了它,并且它在那里是正确的.

最佳答案
问题在于

< bean id =“edao”class =“org.resultset.EmployeeDao”>
     < property name =“jdbcTemplate”ref =“jdbcTemplate”>< / property>
< /豆腐>

尝试将name =“jdbcTemplate”更改为name =“template”.由于你已经将名称命名为jdbcTemplate,spring将在EmployeeDao类中搜索名为setJdbcTemplate()的setter方法,但是你拥有的acutal方法是setTemplate()

猜你在找的Spring相关文章