为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“使用类路径资源中定义的名称创建 bean 时出错”?

如何修复“使用类路径资源中定义的名称创建 bean 时出错”?

倚天杖 2022-11-10 16:47:34
我参加了一个 bean 课程,在这个课程中我学习了一个内部 bean。我已经在配置文件中配置了它们。但是当我尝试运行我的 Java 应用程序时,它抛出异常说“在类路径资源 [spconfig.xml] 中定义名称为 'id1' 的 bean 创建错误:设置属性值时出错;嵌套异常是 org.springframework.beans .NotWritablePropertyException:bean 类 [SampleBean] 的无效属性 'db':Bean 属性 'db' 不可写或具有无效的 setter 方法。您的意思是 'DB'?为什么我不欢迎内豆?该怎么办?在配置文件中正确定义的属性。SampleBean.javapublic class SampleBean {    private DemoBean db;    public void setDB(DemoBean db) {        this.db=db;    }    public void show() {        db.m1();    }}DemoBean.javapublic class DemoBean {    public void m1() {        System.out.println("Welcome to inner bean");    }}spconfig.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"        "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="id1" class = "SampleBean"> <property name="db"> <bean class = "DemoBean"/> </property> </bean> </beans>Client.javaimport org.springframework.beans.factory.*;import org.springframework.beans.factory.xml.*;import org.springframework.core.io.*;public class Client {    public static void main(String[] args) {    Resource res = new ClassPathResource("spconfig.xml");    @SuppressWarnings("deprecation")    BeanFactory factory = new XmlBeanFactory(res);    Object o = factory.getBean("id1");    SampleBean sb = (SampleBean)o;    sb.show();    }}
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

Spring 使用JavaBeans 命名约定

有一个像

private DemoBean db;

和像这样的声明

<property name="db">

Spring 需要一个名为 的 setter setDb,这setDB与您的代码中的不同。将其更改为setDb,您的main方法将正确打印

Welcome to inner bean


查看完整回答
反对 回复 2022-11-10
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信