gpt4 book ai didi

java - 如何在 Micronaut 中使用@Parameter?

转载 作者:行者123 更新时间:2023-12-05 07:26:24 25 4
gpt4 key购买 nike

我正在尝试向 micronaut 的 DI 容器注入(inject)依赖项,并希望使用带有参数/参数的构造函数来获取 bean。我读到了注解@Parameter,但不明白如何使用它。

在 API 引用中它说:

public @interface Parameter
Specifies that an argument to a bean constructor is user provided and a ParametrizedBeanFactory should be generated.
Should be applied only to constructor arguments and Bean factory methods

https://docs.micronaut.io/latest/api/io/micronaut/context/annotation/Parameter.html

我应该把注解放在哪里?我可以将变量值传递给 bean 构造函数吗?

最佳答案

@Parameter - 应仅应用于构造函数参数和 Bean 工厂方法。 micronaut latest doc

比如你有一个类

@Prototype
public class SomeService {

@Inject
private SomeClient client;

private final String valueA;
private final String valueB;

public ReadActivityService(@Parameter String valueA, @Parameter String valueB) {
this.valueA = valueA;
this.valueB = valueB;
}

}

并且您想创建执行依赖注入(inject)的给定 bean SomeService 的新实例

@Singleton
@Requires(notEnv = Environment.TEST)
public class Starter {

@Inject
private ApplicationContext context;


@EventListener
public void init(final ServerStartupEvent event) {
var service = context.createBean(SomeService.class, valueA, valueB);
}

}

关于java - 如何在 Micronaut 中使用@Parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54352417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com