这是一个带有 Hibernate 的 Spring MVC 项目。我正在尝试创建一个 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 不能在静态对象上工作,因为它们是在早期创建的,但尚未创建自动装配机制。