Первое предложение состоит в том, чтобы иметь общий базовый класс для всех контроллеров со следующей строкой:
public abstract class AbstractBaseController {
protected Logger logger = Logger.getLogger(this.getClass());
}
Обратите внимание, что регистратор не длиннее static
- на самом деле это не проблема с Singleton Springуслуги / контроллеры, но все же я нахожу это немного неловким.См. Также: Почему мы объявляем Loggers статическим финалом?
Также это немного противоречит принципам ОО и не позволяет вам наследовать от чего-либо еще.На самом деле это ограничение языка Java, в Scala / slf4s вы можете написать:
class SomeController extends BaseController with Logging
Где BaseController
- базовый класс, а Logging
- черта , которая смешивает поле logger
с классом SomeController
.Очень удобно.