此问题在此处已有答案:
What in the world are Spring beans?(14个答案)
9分钟前就关门了。
我刚刚开始使用spring Boot ,我不明白为什么我要使用bean而不是创建自己的对象。我创建的对象和spring创建的对象(bean)有什么区别?
我试着做一个bean,它比创建一个普通对象需要更多的编码,我必须学习如何使用ApplicationContext,getBean等。
此问题在此处已有答案:
What in the world are Spring beans?(14个答案)
9分钟前就关门了。
我刚刚开始使用spring Boot ,我不明白为什么我要使用bean而不是创建自己的对象。我创建的对象和spring创建的对象(bean)有什么区别?
我试着做一个bean,它比创建一个普通对象需要更多的编码,我必须学习如何使用ApplicationContext,getBean等。
4条答案
按热度按时间xriantvc1#
简短回答:Spring bean =对象。
长回答:允许Spring将所有对象注入到依赖它们的类中要比创建自己的IoC容器更容易。
在此阅读更多信息:https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/beans.html
qeeaahzv2#
@Bean注解基本上用于将类定义为Object,是的,您是对的,创建bean最初需要比直接创建类的对象更多的编码,但是您是否想过,假设您使用new关键字创建了对象,并且在许多地方创建了此对象,假设在1000个地方创建,如果您必须更改对象中的任何内容,这将使您变得复杂,因为您必须去所有1000个地方并改变它,但是当你使用bean时,你需要在一个地方做这些改变,在所有其他地方,它会自动反映,同样在这种情况下,我们不需要编译你的整个代码,这就是为什么我们使用@bean,同样它会非常有助于使你的代码松散耦合
7ajki6be3#
Spring是一个允许你使用依赖注入的框架,这意味着框架可以为你构建类示例(bean),你只需声明bean之间的依赖关系,我建议你熟悉一下dependency injection。
上面的例子显示了SuperHeavyService是由框架创建的,框架将使用SuperHeavyService类的构造函数注入requires类型,这就是依赖注入。
c2e8gylq4#
我们使用bean主要是为了实现松耦合。当你自己创建对象时,这些对象是紧耦合的。想象一下一个应用程序有几十个甚至几百个类。有时我们想在整个应用程序中共享一个类的单个示例,有时我们需要为每个用例提供一个单独的对象,等等。
管理如此多的对象无异于一场噩梦,这就是控制反转的用武之地。
对象可以从IoC容器中检索依赖项,而不是自己构造依赖项,我们所要做的就是为容器提供适当的配置元数据。
使用IOC,您可以实现松耦合。
松耦合意味着类大部分是独立的。如果类A对类B的唯一了解是类B通过其接口暴露的内容,则类A和类B被称为松耦合。为了克服对象之间紧耦合的问题,Spring框架借助POJO/P模型使用依赖注入机制,通过依赖注入实现松耦合。示例:如果你换了衬衫,你就不会被迫改变你的身体--当你能做到这一点时,你就有了松耦合。当你不能做到这一点时,你就有了紧耦合。松耦合的例子有接口、JMS。
说明松散耦合概念的Java程序
说明:在上面的例子中,Topic 1和Topic 2对象是松耦合的,这意味着Topic是一个接口,我们可以在运行时注入任何实现的类,我们可以为最终用户提供服务。
希望有帮助。