これは、Hibernateを使用したSpringMVCプロジェクトです。私は、データベースへのログの入力を担当する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オブジェクトをnullにしないようにするにはどうすればよいですか?メソッドパラメータとして渡すことができることは知っていますが、それはあまり良くありません。静的オブジェクトは初期段階で作成されているため、自動配線メカニズムはまだ作成されていないため、autowiredは静的オブジェクトでは機能しないと思います。