博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 错误(org.springframework.beans.NotWritablePropertyException)依赖注入配置
阅读量:4054 次
发布时间:2019-05-25

本文共 2365 字,大约阅读时间需要 7 分钟。

 

spring 错误(org.springframework.beans.NotWritablePropertyException)

  org.springframework.beans.NotWritablePropertyException: Invalid property 'postDao' of bean class?
  出现异常的原因是在application-xxx.xml中property name的错误。
  <property name="...."> 中name的名字是与bean的set方法相关的,而且要注意大小写。
  比如:
public class PostManageImpl extends BaseManage implements PostManage {
 private PostDAO dao = null;
 public void setPostDAO(PostDAO postDAO){
  this.dao = postDAO;
 }
}
那么xml的定义应该是:
<bean id="postManage" parent="txProxyTemplate"><property name="target"> <bean class="com.yz.spring.service.implement.PostManageImpl">  <property name="postDAO"><ref bean="postDAO"/></property> 对  <property name="dao"><ref bean="postDAO"/></property> 错 </bean></property></bean>
 

package com.bjsxt.spring.dao;

public interface UserDao {

 
 public void save(String username, String password);
}

 

package com.bjsxt.spring.dao;

public class UserDao4MySqlImpl implements UserDao {

 public void save(String username, String password) {

  System.out.println("--------UserDao4MySqlImpl.save()-------");
 }
}

 
 

package com.bjsxt.spring.manager;

public interface UserManager {

 
 public void save(String username, String password);
}

 
//注意set方法是在用到bean的class文件中定义,而不是在对应的DAO实现中定义

package com.bjsxt.spring.manager;

import com.bjsxt.spring.dao.UserDao;

public class UserManagerImpl implements UserManager {

 
 private UserDao userDao;
 
// public UserManagerImpl(UserDao userDao) {
//  this.userDao = userDao;
// }
 
 public void save(String username, String password) {
  this.userDao.save(username, password);
 }

 public void setUserDao(UserDao userDao) {

  this.userDao = userDao;
 }
}

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=""

      xmlns:xsi=""
      xmlns:aop=""
      xmlns:tx=""
      xsi:schemaLocation="
          
           ">
          
<!--bean标签中id的值自己随意起,不过不能让他们重名,class属性的值必须是对应的实现类,不能是接口。          -->
<!--配置DAO,mysql实现与Oracle实现-->
 <bean id="userDao4MySqlImpl" class="com.bjsxt.spring.dao.UserDao4MySqlImpl"/>
 <bean id="userDao4OracleImpl" class="com.bjsxt.spring.dao.UserDao4OracleImpl"/>
 
<!--配置manager -->
 <bean id="userManager" class="com.bjsxt.spring.manager.UserManagerImpl">
  
<!--   构造方法注入,ref属性值是对应的bean标签的id属性值 -->
<!--  <constructor-arg ref="userDao4OracleImpl"/>-->
  
<!-- setter方法注入,name属性值是UserManage.java文件中定义的对象名userDao,ref是对应的bean标签中id属性的值。  -->
   <property name="userDao" ref="userDao4MySqlImpl"/>
<!--   <property name="userDao" ref="userDao4OracleImpl"/>-->
 </bean>
 
</beans>

 
 
 

转载地址:http://sotci.baihongyu.com/

你可能感兴趣的文章
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
自定义 select 下拉框 多选插件
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
linux和windows内存布局验证
查看>>
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux irqdebug
查看>>