【发布时间】:2014-10-04 20:12:03
【问题描述】:
我的项目结构如下 [1]:http://i.stack.imgur.com/T1jvh.png
我在 create-user 中定义了一个类和接口
用户生成器接口
package com.credit.userGenerator;
public interface UserGeneratorInterface {
public String userIdGenerator();
}
RandomUserGenerator.java
public class RandomUserGenerator implements UserGeneratorInterface {
public static enum Mode {
ALPHA, ALPHANUMERIC, NUMERIC
}
public static String generateRandomString(int length, Mode mode) throws Exception {
code logic
}
public String userIdGenerator(){
code logic
}
}
我已经在 da-web 和 wan 中定义了应用程序上下文以获取 RandomUserGenerator.java 的服务
public class ApplicationSignManager implements IApplicationSignInterface {
public UserGeneratorInterface iUserGeneratorInterface;
public UserGeneratorInterface getiUserGeneratorInterface() {
return iUserGeneratorInterface;
}
public void setiUserGeneratorInterface(
UserGeneratorInterface iUserGeneratorInterface) {
this.iUserGeneratorInterface = iUserGeneratorInterface;
}
}
AppContext.xml
<bean id="userGenerator" class="com.credit.userGenerator.RandomUserGenerator" ></bean>
<bean id="appSign" class="com.*****.service.ApplicationSignManager">
<description>List of Dao in ApplicationLogin Manager</description>
<property name="userGeneratorInterface" ref="userGenerator"/>
</bean>
但我收到以下异常
Bean 属性“iUserGeneratorInterface”不可写或设置方法无效。 setter的参数类型和getter的返回类型是否匹配?
【问题讨论】:
-
确实如此。如果 bean 属性(字段)名称为
iUserGeneratorInterface,则 setter 名称应为setIUserGeneratorInterface。注意大写I。也适用于吸气剂。为了清楚起见,最好叫它userGeneratorInterface。 -
错误仍然存在。在 ServletContextresource[/WEBINF/applicationFlowContext.xml] 中定义名称为 'appSign' 创建 bean 时出错:设置属性值时出错;嵌套异常是 org.springframework.beans.NotWritablePropertyException:bean 类 [com.bhaskar.service.ApplicationSignManager] 的无效属性“userGeneratorInterface”:Bean 属性“userGeneratorInterface”不可写或具有无效的 setter 方法。 setter的参数类型和getter的返回类型是否匹配?
-
请问这个简单的问题,但是..
com.*****.service.UserGenerator实现了UserGeneratorInterface吗?因为你的裁判使用了com.*****.service.UserGenerator -
感谢 Xstian 指出错字。我已经编辑了帖子
标签: spring