Область применения и реализация Java EE Logger Bean - PullRequest
0 голосов
/ 15 марта 2019

Я написал собственный класс Logger, в котором нужно внедрить bean-компонент @RequestScoped (MyRequestContext) для регистрации информации, специфичной для запроса. Я также хочу записать в журнал класс (имя) класса, регистрирующего что-то, что я могу получить из параметра InjectionPoint из конструктора.

Упрощенная версия моего регистратора будет выглядеть так:

@Dependent
public class MyLogger
{
    @Inject
    private MyRequestContext myRequestContext;

    private Class loggingSourceClass;

    @Inject
    public MyLogger(InjectionPoint injectionPoint)
    {
        // get class
        loggingSourceClass = injectionPoint.getMember().getDeclaringClass();
    }

    public void log(String msg)
    {
        System.out.println(loggingSourceClass.getName() + " - " myRequestContext.getValue() + " -" + msg);
    }
}

Я ходил туда-сюда и не могу решить, является ли это хорошим подходом.

Есть ли лучший и / или более эффективный способ создания регистратора, который имеет эту информацию (контекст запроса и класс вызова / инъекции)?

Правильно ли выбран @Dependent?

Заранее большое спасибо!

...