@ umiejscowiony w klasach statycznych

To projekt Spring MVC z Hibernate. Próbuję utworzyć klasę Logger odpowiedzialną za wprowadzanie dzienników do bazy danych. Inne klasy po prostu wywołują odpowiednie metody z pewnymi atrybutami i ta klasa powinna wykonywać całą magię. Z natury powinna to być klasa ze statycznymi metodami, ale powoduje to problemy z autowierowaniem obiektu 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);
    }
}

Jak to zrobić? Co powinienem zrobić, aby nie unieważnić obiektu dao? Wiem, że mogę przekazać go jako parametr metody, ale to nie jest zbyt dobre. Domyślam się, że autowired nie może działać na statycznych obiektach, ponieważ są one tworzone na wczesnym etapie, a mechanizm autowierowania nie jest jeszcze utworzony.

questionAnswers(3)

yourAnswerToTheQuestion