codecamp

Micronaut 从库中导入 Bean

您可以使用 @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


Micronaut Bean 注释元数据
Micronaut 可忽略性注解
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Micronaut 独立命令行应用程序

Micronaut 安全

Micronaut 多租户

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }