Spring Beans创建

8 浏览
0 Comments

Spring Beans创建

我知道,@Component 注释是在Spring 2.5中引入的,为了通过类路径扫描来摆脱 XML bean 定义。

@Bean 是在Spring 3.0中引入的,并且可以与@Configuration结合使用,完全摆脱 XML 文件,使用Java配置替代。

是否可以重复使用@Component注释而不是引入@Bean注释? 我的理解是最终目标是在两种情况下创建 bean。

admin 更改状态以发布 2023年5月20日
0
0 Comments

@Component@Bean做两件完全不同的事情,不应混淆。

@Component(以及@Service@Repository)用于使用类路径扫描自动检测和自动配置bean。注释的类和bean之间存在一个隐式的一对一映射(即每个类一个bean)。这种方法对于连线控制非常有限,因为它纯粹是声明式的。

@Bean用于显式声明单个bean,而不是像上面那样让Spring自动创建。它将bean的声明与类定义解耦,并允许您完全按照自己的选择创建和配置bean。

回答你的问题...

是否可以重用@Component注释而不是引入@Bean注释?

可能可以,但他们选择不这样做,因为这两个注释非常不同。 Spring已经足够令人困惑了,不要让事情更混乱。

0
0 Comments

@Component 适用于组件扫描和自动连接。

何时应该使用@Bean

有时自动配置不是一个选择。 何时? 让我们想象一下,您想从第三方库连接组件(您没有源代码,因此无法使用@Component注释其类),因此自动配置不可能。

@Bean注释返回一个对象,Spring应该在应用程序上下文中注册它作为bean。 方法的主体承载创建实例的逻辑。

0