解决方案 »

  1.   

    @Autowired
    用这个注解 @Resource放这里是是情况
      

  2.   

    普通类,你的类必须需要spring的bean管理,否则只能自己通过读取spring配置文件的形式getBean来实例化对象
      

  3.   

    你的这个普通类没有加载到spring的配置文件里面  你要在普通类里面拿就有ApplicationContext  类的getBean吧
      

  4.   

    2楼说得对,你只是用@Resource注册实例化了service
    但是你没有get与set
    @Autowired就是get与set引用的
      

  5.   

    请参见三楼和四楼。 普通类也是需要交给spring去管理,这样才可以调用service。或者在类上加上注解@Component
      

  6.   

    你这个类没有用spring管理,所以没法注入,如果需要在一些静态方法里面调用到bean,可以编写一个listener类,在初始化时保存上下文:public void contextInitialized(ServletContextEvent event) {
    super.contextInitialized(event);
    applicationContext = WebApplicationContextUtils
    .getRequiredWebApplicationContext(event.getServletContext());
    }
    在其他类里面用applicationContext.getBean(beanName)就可以获得到了
      

  7.   

    @Component
    public class XYDBTask extends TimerTask {@Autowired
    private IDeviceConfigService deviceConfigService;}
    这样就应该没问题了,@Component注解会让spring管理这个类,@Autowired会注入你需要的Service
      

  8.   

    要么生成set方法,在spring中的XYDBTask注入deviceConfigService
    要么通过spring的getBeanId去取
      

  9.   

    话说调用service层的话是要在spring加配置文件的
      

  10.   

    嗯,三楼,四楼正解,普通类想要调用service管理的类,需要在spring的配置文件里进行配置,要不然,spring不管理的东西,是用不了它的service的
      

  11.   

    把private IDeviceConfigService deviceConfigService属性的setter和getter方法写出来,然后再在setter方法上加注解。
      

  12.   

    看你这问题一般都是没有get和set方法导致的错误!!!!没有set去赋值肯定是空的,。
      

  13.   

    空指针,说明这个类就没有初始化, 你这个是普通类,在该类中只是添加了service层类的引用,根本就没有对其初始化,看楼主的做法是,给普通类的字段上面直接加上@resource进行注入,但楼主这样做忘记了一个前提,那就是 该类必须是spring管理的类,
    如果是spring的管理的话,那么必须在这个类上加上 @Repository |@Service | @Controllo |@Component,
         加上以后,就是spring管理的类了,
       楼主要想让该类 脱离spring的管理,那么就必须手动的 把service层的类进行实例化,不然空指针问题不会得到解决的。
      

  14.   

    在你自己定义的类上面使用@component等,可以将你定义的类标识为bean.这样就受spring管理了。@autowired和@resources是指定类的装配策略,一个根据类型,一个根据name(失败后根据类型),根据经验,set和gdt方法不是必须的,可以直接标注到属性上(这样可能会有侵入性)。
      

  15.   

    在你自己定义的类上面使用@component等,可以将你定义的类标识为bean.这样就受spring管理了。@autowired和@resources是指定类的装配策略,一个根据类型,一个根据name(失败后根据类型),根据经验,set和gdt方法不是必须的,可以直接标注到属性上(这样可能会有侵入性)。
      

  16.   

    在你自己定义的类上面使用@component等,可以将你定义的类标识为bean.这样就受spring管理了。@autowired和@resources是指定类的装配策略,一个根据类型,一个根据name(失败后根据类型),根据经验,set和gdt方法不是必须的,可以直接标注到属性上(这样可能会有侵入性)。
      

  17.   

    三四楼正解,,,  不在spring中配制,spring无法注入的  肯定为空的。