gpt4 book ai didi

java - 为什么 Spring 中的作用域会影响 Spring 中类的加载

转载 作者:行者123 更新时间:2023-11-30 08:05:03 26 4
gpt4 key购买 nike

类(class)学生 取决于类(class)结果

<bean id = "result" lazy-init = "false">
</bean>
<bean id = "student" lazy-init = "true">
</bean>

Result: result bean 将在容器启动时加载,student 将在我们调用 getBean 方法时加载。

<bean id = "result" lazy-init = "false" scope = "prototype">
</bean>
<bean id = "student" lazy-init = "true" scope = "Singleton">
</bean>

结果:容器启动时不会加载任何 bean。

问题:为什么作用域会影响类加载?范围与类加载时间有什么关系?

最佳答案

根据 documentation

The non-singleton, prototype scope of bean deployment results in the creation of a new bean instance every time a request for that specific bean is made. That is, the bean is injected into another bean or you request it through a getBean() method call on the container. As a rule, use the prototype scope for all stateful beans and the singleton scope for stateless beans.

由于您尚未调用 getBean 或将其注入(inject)到另一个 bean,因此尚未创建此 bean。

顺便说一下,即使您将 singletone bean 声明为 lazy-init="true",如果您要注入(inject)它(对于带有 @Autowired 注释的示例)到其他非惰性 bean。

关于java - 为什么 Spring 中的作用域会影响 Spring 中类的加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35249700/

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