Spring 如果我们使用@Inject和@Component,那么默认的bean作用域是什么?
当我们将Spring 如果我们使用@Inject和@Component,那么默认的bean作用域是什么?,spring,spring-annotations,jsr330,Spring,Spring Annotations,Jsr330,当我们将@Autowired与@Component一起使用时,我知道默认的bean范围是singleton 但是,如果我们使用JSR-330的@Inject和spring的@组件(不使用@Scope或@Singleton)呢?两者之间没有区别 这两个注释的工作方式与Spring决定支持JSR-299注释的方式相同 注释建立在JSR-330之上 以Gavin King为首的JSR-299(Java上下文和依赖项注入)使用JSR-330作为基础,并通过模块化、交叉方面(装饰器、拦截器)、自定义范围或
@Autowired
与@Component
一起使用时,我知道默认的bean范围是singleton
但是,如果我们使用JSR-330的
@Inject
和spring的@组件
(不使用@Scope
或@Singleton
)呢?两者之间没有区别
这两个注释的工作方式与Spring决定支持JSR-299注释的方式相同
注释建立在JSR-330之上
以Gavin King为首的JSR-299(Java上下文和依赖项注入)使用JSR-330作为基础,并通过模块化、交叉方面(装饰器、拦截器)、自定义范围或类型安全注入功能对其进行了显著增强。JSR-299是在JSR-330之上分层的
作为@Component
,所有组件默认为单例
单例bean与开创性的四人帮(GoF)模式书中定义的单例模式截然不同。GoF单例硬编码对象的作用域,这样每个类加载器就只能创建一个特定类的实例。Spring单例的范围最好按照容器和bean来描述。这意味着,如果您在单个Spring容器中为特定类定义了一个bean,那么Spring容器将创建该bean定义的类的一个且仅一个实例单例范围是Spring中的默认范围
组件的范围并不取决于您使用哪个注释来注入它们。默认情况下,Springbean是单例的。