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;
}
}
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.0.xsd">