Skip to content

== Jakarta 上下文和依赖注入™

jsr330规范

Jakarta 上下文和依赖注入 github

Jakarta 上下文和依赖注入 eclipse

标准注解和Spring注解的区别:

Springjakarta.inject.*jakarta.inject限制/描述
@Autowired@Inject@Inject没有required属性,可以使用Java8的Optional代替
@Component@Named / @ManagedBeanJSR-330没有提供组合模式,只有一种方式来标记命名组件
@Scope(“singleton”)@SingletonJSR-330默认范围类似Spring的prototype,但是为了和Spring的默认值保持一致,在Spring中定义的JSR-330 bean默认是singleton。 如果要使用其他的作用范围,那么需要使用Spring的@Scope注解。jakarta.inject也提供了一个@Scope注解。但是这个注解仅用来创建你自己的注解。(在jakarta企业api提供对应的使用范围)
@Qualifier@Qualifier / @Namedjakarta.inject.Qualifier只是一个用来构建自定义Qualifier的元注解。具体的字符串限定符(如带value的Spring的@Qualifier)jakarta.inject.Named关联。
@Value-没有相同功能
@Required-没有相同功能
@Lazy-没有相同功能
ObjectFactoryProviderjakarta.inject.Provider是Spring的ObjectFactory的直接替代品,它只使用了较短的get()方法名。它还可以与Spring的@Autowired结合使用,或者与无注解的构造函数和setter方法结合使用。

maven 依赖

xml
<!--https://github.com/jakartaee/inject-->
<dependencies>
    <dependency>
        <groupId>jakarta.inject</groupId>
        <artifactId>jakarta.inject</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>

Last updated:

版权声明