gpt4 book ai didi

java - 使用 Spring 定义 bean

转载 作者:行者123 更新时间:2023-12-01 13:23:54 25 4
gpt4 key购买 nike

我开始读一本关于 Spring 的书,我不断问自己一个问题:

在spring的XML文件中使用Spring表达式语言定义bean与在Java类中使用普通方式定义bean有什么区别。例如,我们有两个等效的实现:

<bean id="carl" class="springinaction.springidol.Instrumentalist" >
<property name="song" value="#{kenny.song}" />
</bean>

Instrumentalist carl = new Instrumentalist();
carl.setSong(kenny.getSong());

何时以及为什么我应该使用一种方式而不是另一种?

最佳答案

<bean id="carl" class="springinaction.springidol.Instrumentalist" >
<property name="song" value="#{kenny.song}" />
</bean>

此代码包含在正确的 Spring 配置文件中,将生成一个 Spring 托管对象。由于默认情况下 Spring bean 的范围是单例,因此只有一个实例,可以使用 ApplicationContext#getBean 方法来访问该实例。

Instrumentalist carl = new Instrumentalist();
carl.setSong(kenny.getSong());

此代码包含在正确的 Java 方法中,将在 JVM 堆上创建一个实例,可以通过变量 carl 访问该实例。只要存在引用它的变量,该实例就会存在。然后它就可以选择进行垃圾收集。

关于java - 使用 Spring 定义 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21889756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com