You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中XML定义的Bean是否仅需Setter和Getter即可工作?

回答

不是仅靠Setter和Getter就能让Spring Bean正常工作,你的场景能运行是几个条件共同作用的结果:

  • 默认无参构造方法的存在:你注释了带参数的构造方法,但Java会为没有显式定义任何构造方法的类自动生成一个public的无参构造方法。Spring创建Bean实例时,默认会调用这个无参构造方法来初始化对象,这是Bean能被实例化的基础。如果显式定义了任何构造方法(哪怕是带参的),Java就不会自动生成无参构造,这时Spring找不到可用的构造方法就会报错。

  • Setter方法用于属性注入:你在XML里用了<property>标签,这是Spring的Setter注入方式。Spring在实例化Bean后,会通过反射调用对应属性的Setter方法(比如setName)来设置属性值,这就是你能看到"Setter Method"打印、属性值被正确设置的原因。

  • Getter方法不是必须的:Getter方法主要是供外部读取Bean的属性值,比如在其他组件里调用person.getName(),或者Spring的EL表达式、属性绑定等特性中用到。如果业务逻辑不需要读取属性,完全可以去掉Getter方法,Bean依然能被正常实例化和注入属性。

总结:Spring Bean正常工作的核心前提是存在可被Spring调用的构造方法(默认无参或显式定义的构造方法),Setter方法是Setter注入模式下设置属性的手段,Getter则是按需使用的可选方法。


内容的提问来源于stack exchange,提问作者user20820474

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:32:23