Micronaut 从库中导入 Bean

2023-02-28 17:04 更新

您可以使用 @Import 批注从使用 JSR-330 批注的外部已编译库中导入 bean。

Bean 导入目前仅在 Java 语言中受支持,因为其他语言在源代码处理期间对类路径扫描有限制。

例如,要将 JSR-330 TCK 导入应用程序,请添加对 TCK 的依赖:

 Gradle Maven 
implementation("io.micronaut:jakarta.inject")
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>jakarta.inject</artifactId>
</dependency>

然后在您的 Application 类上定义 @Import 注释:

package example;

import io.micronaut.context.annotation.Import;

@Import( (1)
        packages = { (2)
                "org.atinject.tck.auto",
                "org.atinject.tck.auto.accessories"},
        annotated = "*") (3)
public class Application {
}
  1. @Import 已定义

  2. 定义要导入的包。请注意,Micronaut 不会递归子包,因此需要明确列出子包

  3. 默认情况下,Micronaut 只会导入具有作用域或限定符的类。通过使用 * 你可以让每个类型成为一个 bean。

一般来说,@Import 应该在应用程序而不是库中使用,因为如果两个库导入相同的 beans,结果可能是 NonUniqueBeanException


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号