作为JAVAEE中的常用ORM框架,Hibernate给众多开发者带来了极大的便利,但令人头疼的是其配置及其复杂,尤其在业务量大的系统中,虽然可以通过一些自动工具来创建配置文件,但大量的文件充斥于项目中,使得整个文件架构显得丑陋。在看李刚老师的JAVAEE书时,看到JPA Annotation是个不错的东西,而且Hibernate3对JAP Annotation由良好的支持,于是用Hibernate+Spring整合了一个小框架,运行时提示如下错误
log4j:WARN No appenders could be found for logger
(org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main"
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'baseDao': Injection of autowired dependencies failed;
nested exception is
org.springframework.beans.factory.BeanCreationException: Could not
autowire method: public void
com.peter.hr.dao.impl.BaseDaoImpl.setSuperSessionFactory
(org.hibernate.SessionFactory); nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'sessionFactory' defined in class path resource
[applicationContext.xml]: Invocation of init method failed; nested
exception is java.lang.NoSuchMethodError:
javax.persistence.OneToMany.orphanRemoval()Z
at
最后两行是关键错误,原来在项目中引入了MyEclipse自带的JAVAEE相关包,导致了与Hibernate的冲突,将MyEclipse自带包去掉后,小框架可以正常运行了。
对框架的一点看法
其实每个团队都会有自己的框架,在项目开发中运用前人积累的框架,可谓是前人栽树,后人乘凉的美事,在这里普遍的说法是乘凉的人可以更多的关注基础框架之外的东西,例如更多的业务逻辑。但对于业务逻辑比较简单的项目,也就剩下简单的配置一下了。我不敢说运用了别人的框架自己的技术就不会发展了,毕竟在JAVAEE应用开发中有大量的东西需要学习、创新,我只是感觉自己错过了某些东西。既然选择了软件行业,就应该显得专业一点,毕竟自己是吃这晚饭的,在运用别人的基础上要多深入的了解。