@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 еще не созданы.