Spring@Component与@Bean

我了解到@Component注释是在Spring 2.5中引入的,目的是通过使用类路径扫描摆脱xml bean的定义。

@Bean是在Spring 3.0中引入的,可以与之一起使用,@Configuration以完全摆脱xml文件并改用java config。

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

回答:

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

@Component(和@Service@Repository)用于使用类路径扫描自动检测和自动配置bean。在带注释的类和Bean之间存在隐式的一对一映射(即,每个类一个Bean)。由于此布线仅是声明性的,因此使用此方法对布线的控制非常有限。

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

要回答你的问题…

是否有可能重新使用@Component注释而不是引入@Bean注释?

当然可以;但他们选择不这样做,因为两者是完全不同的。spring已经很混乱了,又没有使水更浑浊了。

以上是 Spring@Component与@Bean 的全部内容, 来源链接: utcz.com/qa/414310.html

回到顶部