@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);
    }
}

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

21
задан T.G 3 March 2016 в 07:52
поделиться