我在某些地方已经读到@Component内部的@Bean和@configuration之间的区别,如果后者提供了一个singleton bean,而前者则没有。谁能确认这是真的吗?
答案 0 :(得分:0)
在使用带有{
"first": {
empty:false
},
"second": {
empty:false
}
}
注释的类时,这些类将以 full 模式进行处理,这意味着将使用ASM读取该类,并使用CGLIB对其进行增强,以便内部方法调用将返回相同的实例。
使用@Configuration
声明在 lite 模式下正在处理的bean。不允许方法间引用(您可以这样做,但每次调用都会创建一个新bean)。
请参阅《 Spring参考指南》中的this section部分,其中对此进行了详细说明。
答案 1 :(得分:-1)
请在您的问题中指定单例的含义。实际上,在春季世界中,SINGLETON是默认的bean作用域,与在Component或Configuration中定义的bean的位置无关,它的作用域将是SINGLETON,但是可以通过为@Bean批注提供scope属性来覆盖它。在Configuration中定义的Bean有一些约束。您可以在这里找到更多详细信息:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Bean.html