JSR-330标准注释的限制
使用标准注释时,应该知道一些重要的特性是不可用的,如下表所示:
Spring javax.inject.* javax.inject restrictions / comments
@Autowired @Inject @Inject没有’required’属性。可以与Java 8的可选选项一起使用。
@Component @Named / @ManagedBean JSR-330没有提供可组合的模型,只提供了一种识别命名组件的方法。
@Scope(“singleton”) @Singleton JSR-330的默认作用域就像Spring的原型。但是,为了使其与Spring的一般默认值保持一致,在Spring容器中声明的JSR-330 bean默认为单例。为了使用单例之外的作用域,您应该使用Spring的@Scope注释。javax。inject还提供了@Scope注释。不过,这一方法仅用于创建您自己的注释。
@Qualifier @Qualifier / @Named javax.inject。Qualifier只是用于构建自定义限定符的元注解。具体的字符串限定符(比如Spring的带值的@Qualifier)可以通过javax.inject.Named关联。
@Value - no equivalent
@Required - no equivalent
@Lazy - no equivalent
ObjectFactory Provider javax.inject。Provider是Spring的ObjectFactory的直接替代方法,只是使用了更短的get()方法名。它还可以与Spring的@Autowired或无注释的构造函数和setter方法结合使用。
JSR-330标准注释的限制
最新推荐文章于 2022-03-18 17:34:40 发布