我可以在 for 循环中注入带有参数的 Bean 吗?我不想TheService
在以下示例中手动初始化:
@Singelton
public class Scheduler {
@Inject
private UserQueryService userQueryService;
@Schedule(hour = "*", minute = "*", second = "*/30", persistent = false)
public void execute() {
final List<User> users = userQueryService.findAll();
for (final User user : users) {
final TheService service = new TheService(user.getName(), user.getAge());
service.doSomething();
}
}
}
例如,运行时是否可以将值从 for 循环注入到生产者的方法并使用 CDI 注入服务?我知道,不能注入 String 和原始值,但也许你可以帮助我并提出一些解决方案。
@ApplicationScoped
public class TheServiceFactory {
@Produces
@RequestScoped
public TheService createTheService(final String name, final int age) {
...
}
}
更新:
有其他带有注释的TheService
字段。@Inject