Это проект 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 object null? Я знаю, что могу передать его как параметр метода, но это не очень хорошо. Я предполагаю, что autowired не может работать на статических объектах, потому что они созданы для механизма автоподготовки до начала еще не созданы.