spring接口注入失败
项目快完工的时候,myeclipse崩溃,再打开之后所有的涉及到数据库操作的地方都是空指针异常,注入的dao在action中为空,真坑爹,好好的怎么就突然全部的dao到报...
项目快完工的时候,myeclipse崩溃,再打开之后所有的涉及到数据库操作的地方都是空指针异常,注入的dao在action中为空,真坑爹,好好的怎么就突然全部的dao到报空指针异常呢?
如下是我的spring配置文件
<!--配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean>
<!-- 声明一个 Hibernate 3 的事务管理器供代理类自动管理事务用 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!--配置事务传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 指明哪些类要使用事务 -->
<aop:config>
<aop:pointcut id="allmethod" expression="execution(* com.shiep.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="allmethod" />
</aop:config>
<!--把接口对象dao注入action中 -->
<bean id="login" class="com.shiep.action.LoginAction">
<property name="operatorDao" ref="operatorDao"></property>
</bean>
<!--声明接口对象dao -->
<bean id="operatorDao" class="com.shiep.daoImpl.OperatorDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
如下是action中
private OperatorDao operatorDao;
setter.....getter 展开
如下是我的spring配置文件
<!--配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean>
<!-- 声明一个 Hibernate 3 的事务管理器供代理类自动管理事务用 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!--配置事务传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 指明哪些类要使用事务 -->
<aop:config>
<aop:pointcut id="allmethod" expression="execution(* com.shiep.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="allmethod" />
</aop:config>
<!--把接口对象dao注入action中 -->
<bean id="login" class="com.shiep.action.LoginAction">
<property name="operatorDao" ref="operatorDao"></property>
</bean>
<!--声明接口对象dao -->
<bean id="operatorDao" class="com.shiep.daoImpl.OperatorDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
如下是action中
private OperatorDao operatorDao;
setter.....getter 展开
2个回答
展开全部
看你的配置文件,应该没错,而你又说了是myeclipse崩溃后出的问题,因此我觉得不是代码问题,我想到的原因和解决方案有:
1. 项目没有编译好,将项目重新clean一下,选择菜单“project"->"clean"->"clean project selected below"->选中你的项目,点击确认;
2. tomcat缓存问题,删掉tomcat目录下,webapps目录下的工程、清空work目录、清空temp目录,再发布一次;
3. 工程出错,新建另一个项目,将原项目下所有的jar包和代码复制到新工程下,使用新工程发布;
4. jdk出错,我曾经遇到过ibm jdk使用aop,debug崩溃导致的项目再也不能debug,重新安装jdk后解决。
另外:
1. 你的代码中缺少了service层,并且事务直接配置在dao层,除非你的业务非常简单,每次只有一条sql,否则不建议你这样做;
2. 不要再用盗版的myeclipse了吧,免费的eclipse已经有比较好的解决方案了呀。
1. 项目没有编译好,将项目重新clean一下,选择菜单“project"->"clean"->"clean project selected below"->选中你的项目,点击确认;
2. tomcat缓存问题,删掉tomcat目录下,webapps目录下的工程、清空work目录、清空temp目录,再发布一次;
3. 工程出错,新建另一个项目,将原项目下所有的jar包和代码复制到新工程下,使用新工程发布;
4. jdk出错,我曾经遇到过ibm jdk使用aop,debug崩溃导致的项目再也不能debug,重新安装jdk后解决。
另外:
1. 你的代码中缺少了service层,并且事务直接配置在dao层,除非你的业务非常简单,每次只有一条sql,否则不建议你这样做;
2. 不要再用盗版的myeclipse了吧,免费的eclipse已经有比较好的解决方案了呀。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询