public BaseDAOImpl<Alarm,java.lang.Integer> alarmDao;

@Autowired
public void setAlarmDao(SessionFactory sessionFactory) {
alarmDao=new BaseDAOImpl<Alarm,Integer>(Alarm.class,sessionFactory);
}后面引用alarmDao报空指针异常

解决方案 »

  1.   

    既然用了注解,就不需要getter & setter了。直接如下: @Autowired public BaseDAOImpl <Alarm,java.lang.Integer> alarmDao; Spring启动后alarmDao就有值。
      

  2.   

    这样改了之后又报这种错误!
    Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: public com.strogit.assetsmanagement.dao.impl.BaseDAOImpl com.strogit.assetsmanagement.service.impl.AlarmServiceImpl.alarmDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.strogit.assetsmanagement.dao.impl.BaseDAOImpl] is defined: Unsatisfied dependency of type [class com.strogit.assetsmanagement.dao.impl.BaseDAOImpl]: expected at least 1 matching bean
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:435)
    at org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:105)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessAfterInstantiation(AutowiredAnnotationBeanPostProcessor.java:240)
    ... 40 more
    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.strogit.assetsmanagement.dao.impl.BaseDAOImpl] is defined: Unsatisfied dependency of type [class com.strogit.assetsmanagement.dao.impl.BaseDAOImpl]: expected at least 1 matching bean
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:412)
    ... 42 more
      

  3.   

    1、你Spring的xml配置中有没有打开自动依赖注解注入选项?
    即:<context:annotation-config/>,另外还需要打开Spring扫描创建Bean功能: <context:component-scan base-package="你的包名"/>2、BaseDAOImpl 是类,那么应该有个BaseDAO接口。BaseDAOImpl类名上面应该标注上@Repository("alarmDao"),才可以在别的类中如下注入:
    @Autowired public BaseDAOImpl <Alarm,java.lang.Integer> alarmDao;