@autowired в статических классах

Это проект Spring MVC с Hibernate. Я пытаюсь создать класс Logger, который отвечает за ввод журналов в базу данных. Другие классы просто вызывают правильные методы с некоторыми атрибутами, и этот класс должен делать всю магию. По своей природе это должен быть класс со статическими методами, но это вызывает проблемы с автоповерхностью объекта dao.

public class StatisticLogger {
    @Autowired
    static Dao dao;
    public static void AddLoginEvent(LogStatisticBean user){
        //TODO code it god damn it
    }
    public static void AddDocumentEvent(LogStatisticBean user, Document document, DocumentActionFlags actionPerformed){
        //TODO code it god damn it
    }
    public static void addErrorLog(Exception e, String page,  HashMap<String, Object> parameters){
        ExceptionLogBean elb=new ExceptionLogBean();
        elb.setStuntDescription(e);
        elb.setSourcePage(page);
        elb.setParameters(parameters);
        if(dao!=null){ //BUT DAO IS NULL
            dao.saveOrUpdateEntity(elb);
    }
}

Как сделать это правильно? Что я должен сделать, чтобы сделать объект Дао нулевым? Я знаю, что могу передать его в качестве параметра метода, но это не очень хорошо. Я предполагаю, что autowired не может работать на статических объектах, потому что они созданы с раннего до механизма autowiering еще не созданы.

Ответы на вопрос(3)

Ваш ответ на вопрос