Ваш метод продюсера, который вы говорите, выглядит следующим образом:
@Produces
@TestQualifier
public String getTestString()
{
System.out.println("Initializing test string");
return "Test String";
}
… точно так, как если бы вы написали это вместо этого:
@Produces
@Dependent // the default scope for produced objects is @Dependent
@TestQualifier
public String getTestString()
{
System.out.println("Initializing test string");
return "Test String";
}
… где то, что вы хотите написать это:
@Produces
@RequestScoped // you want to produce a string in request scope
@TestQualifier
public String getTestString()
{
System.out.println("Initializing test string");
return "Test String";
}
Чтобы ответить на ваш вопрос, @Dependent
scope означает «создать новый объект каждый раз, когда к нему обращаются». Вы хотите «создать новый объект только при наличии нового запроса».