spring - Bean 属性 'xxx' 不可写或具有无效的 setter 方法

标签 spring properties javabeans writable

我有 Spring 网络应用程序。我已经定义了将服务 bean 作为属性的 Controller bean。也服务 bean 取道。 Dao 已经过测试并且工作正常。现在服务的问题。实际上,我会确保那里的二传手!

那么问题是什么?

Controller bean :

<bean id="listTypeController" class="me.web.servlet.controller.ListTypeController">
<property name="typeService" ref="typeService" />
</bean>  

服务 bean :
<bean id="typeService"class="me.general.service.impl.TypeServiceImpl">
<property name="genericDao" ref="genericDao" />
<property name="typeDao" ref="typeDao" />
</bean>

服务等级:
 public class TypeServiceImpl implements TypeService {

    private TypeDao typeDao;
        private GenericDao genericDao;
    public TypeDao getTypeDao() {
    return typeDao;
}

public GenericDao getGenericDao() {
    return genericDao;
}
public void setTypeDao(TypeDao typeDao) {
    this.typeDao = typeDao;
}

public void setGenericDao(GenericDao genericDao) {
    this.genericDao = genericDao;
}
}

列表 Controller :
public class ListTypeController {

public static final String SEARCH_TYPE_FORM_ATTRIBUTE_NAME = "SearchTypeForm";

private TypeService typeService;

@ModelAttributeSEARCH_TYPE_FORM_ATTRIBUTE_NAME)
public SearchTypeForm createForm() {
    SearchTypeForm form = new SearchTypeForm();
    form.setPageSize(SystemConfiguration.getCurrentConfiguration().getDefaultPageSize());
    form.setActive(Boolean.TRUE);
    return form;
}

@RequestMapping("/administration/types")
public String listTypes(@ModelAttribute(SEARCH_TYPE_FORM_ATTRIBUTE_NAME) SearchTypeForm form,
                             Model model) {
    Page<Type> all = typeService.findTypes(form);
    model.addAttribute("all", all);
    return "/master/general/List";
}


public void setTypeServic(TypeService typeService) {
    this.typeService = typeService;
}
}

错误 :
Invalid property 'typeService' of bean class 
[me.web.servlet.controller.ListTypeController]: 
Bean property 'typeService' is not writable or has an invalid setter method.
Does the parameter type of the setter match the return type of the getter?

最佳答案

ListTypeController没有合适类型的属性来接收 typeService bean,否则该属性的 setter 格式错误。请注意,如果您正在进行一些代理并且您的 ListTypeController指定类型为 TypeServiceImpl ,那么可能是因为您应该通过接口(interface)类型来引用 bean,TypeService .您的typeService 的代理将是 TypeService ,但不是 TypeServiceImpl .

更新:根据您的新代码:setTypeServic应该是 setTypeService ,否则您的属性名称实际上是 typeServic .

关于spring - Bean 属性 'xxx' 不可写或具有无效的 setter 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14888588/

相关文章:

java - 具有自定义状态代码的 Spring Boot Controller ?

java - Springs 应用程序事件的自定义过滤器

java - 在应用程序启动时从 Cassandra 加载数据

javascript - 为什么像这段代码中那样将函数添加为对象属性时省略 () ?

java - 如何使用包含另一个类的对象的类的对象作为jasper报告中的数据源?

使用 XMLEncoder 的 Java Bean 持久性

java - thymeleaf 中的 if 语句

class - 为什么属性不从类方法中获取新值?

java - 如何使用 Java 属性文件?

java - 为 XMLRootElement 命名