Это проект 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 еще не был создан.