3.11.3 JSR-330标准注解的限制

使用标准注解时,重要的是要知道哪些重要功能不可用,如下表所示:

Table 3.6. Spring组件模型元素vs. JSR-330变体

Spring javax.inject.* javax.inject的局限性
@Autowired @Inject @Inject没有require属性,可以使用Java 8的Optional代替。
@Component @Named / @ManagedBean JSR-330没有提供组合模型,仅仅只是一种标识组件的方式
@Scope("singleton") @Singleton JSR-330默认的作用域类似于Spring的prototype。然而,为了与Spring一般的配置的默认值保持一致,JSR-330配置的bean在Spring中默认为singleton。为了使用singleton以外的作用域,必须使用Spring的@Scope注解。javax.inject也提供了一个@Scope注解,不过这仅仅被用于创建自己的注解。
@Qualifier @Qualifier / @Named javax.inject.Qualifier仅使用创建自定义的限定符。可以通过javax.inject.Named创建与Spring中@Qualifier一样的限定符
@Value -
@Required -
@Lazy -
ObjectFactory Provider javax.inject.Provider是对Spring的ObjectFactory的直接替代,仅仅使用简短的get()方法即可。它也可以与Spring的@Autowired或无注解的构造方法和setter方法一起使用。

results matching ""

    No results matching ""