ssh框架,用注释完成的,普通类怎么调用service层

问题描述

publicclassXYDBTaskextendsTimerTask{@Resource(name="deviceConfigServiceImpl")privateIDeviceConfigServicedeviceConfigService;deviceConfigService.getDeviceConfigAll();//报错空指针这种方法在action中完全可以,但是在这个类会报空指针异常。。在线等

解决方案

解决方案二:
@Autowired用这个注解@Resource放这里是是情况
解决方案三:
引用1楼cbxjj的回复:

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

不可以,能举个例子吗?
解决方案四:
普通类,你的类必须需要spring的bean管理,否则只能自己通过读取spring配置文件的形式getBean来实例化对象
解决方案五:
你的这个普通类没有加载到spring的配置文件里面你要在普通类里面拿就有ApplicationContext类的getBean吧
解决方案六:
2楼说得对,你只是用@Resource注册实例化了service但是你没有get与set@Autowired就是get与set引用的
解决方案七:
请参见三楼和四楼。普通类也是需要交给spring去管理,这样才可以调用service。或者在类上加上注解@Component
解决方案八:
你这个类没有用spring管理,所以没法注入,如果需要在一些静态方法里面调用到bean,可以编写一个listener类,在初始化时保存上下文:publicvoidcontextInitialized(ServletContextEventevent){super.contextInitialized(event);applicationContext=WebApplicationContextUtils.getRequiredWebApplicationContext(event.getServletContext());}在其他类里面用applicationContext.getBean(beanName)就可以获得到了
解决方案九:
@ComponentpublicclassXYDBTaskextendsTimerTask{@AutowiredprivateIDeviceConfigServicedeviceConfigService;}这样就应该没问题了,@Component注解会让spring管理这个类,@Autowired会注入你需要的Service
解决方案十:
要么生成set方法,在spring中的XYDBTask注入deviceConfigService要么通过spring的getBeanId去取
解决方案十一:
话说调用service层的话是要在spring加配置文件的
解决方案十二:
嗯,三楼,四楼正解,普通类想要调用service管理的类,需要在spring的配置文件里进行配置,要不然,spring不管理的东西,是用不了它的service的
解决方案十三:
引用11楼u012002376的回复:

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


解决方案十四:
把privateIDeviceConfigServicedeviceConfigService属性的setter和getter方法写出来,然后再在setter方法上加注解。
解决方案十五:
看你这问题一般都是没有get和set方法导致的错误!!!!没有set去赋值肯定是空的,。。。。
解决方案:
空指针,说明这个类就没有初始化,你这个是普通类,在该类中只是添加了service层类的引用,根本就没有对其初始化,看楼主的做法是,给普通类的字段上面直接加上@resource进行注入,但楼主这样做忘记了一个前提,那就是该类必须是spring管理的类,如果是spring的管理的话,那么必须在这个类上加上@Repository|@Service|@Controllo|@Component,加上以后,就是spring管理的类了,楼主要想让该类脱离spring的管理,那么就必须手动的把service层的类进行实例化,不然空指针问题不会得到解决的。
解决方案:
在你自己定义的类上面使用@component等,可以将你定义的类标识为bean.这样就受spring管理了。@autowired和@resources是指定类的装配策略,一个根据类型,一个根据name(失败后根据类型),根据经验,set和gdt方法不是必须的,可以直接标注到属性上(这样可能会有侵入性)。
解决方案:
在你自己定义的类上面使用@component等,可以将你定义的类标识为bean.这样就受spring管理了。@autowired和@resources是指定类的装配策略,一个根据类型,一个根据name(失败后根据类型),根据经验,set和gdt方法不是必须的,可以直接标注到属性上(这样可能会有侵入性)。
解决方案:
在你自己定义的类上面使用@component等,可以将你定义的类标识为bean.这样就受spring管理了。@autowired和@resources是指定类的装配策略,一个根据类型,一个根据name(失败后根据类型),根据经验,set和gdt方法不是必须的,可以直接标注到属性上(这样可能会有侵入性)。
解决方案:
三四楼正解,,,不在spring中配制,spring无法注入的。。。肯定为空的。

时间: 2024-12-31 19:58:36

ssh框架,用注释完成的,普通类怎么调用service层的相关文章

如何在非action的普通java类中调用service和dao来操作数据库

问题描述 如何在非action的普通java类中调用service和dao来操作数据库 web程序用的框架是SSH的,在spring.xml中通过方式自动扫描service和dao,现有一个后台消息处理类,要在该类调用其他service和dao进行一些业务和数据库的操作,使用@Autowired private BaseDaoI baseDao;引用dao,在调用时报空指针错误,请教大神们该怎么解决. 解决方案 你所谓的"后台消息处理类"也的用注解标注它是一个Bean才行啊 解决方案二

工具类中调用dao层的方法,spring配置如何写

问题描述 工具类中调用dao层的方法,spring配置如何写 private Set readSensitiveWord() { Set set = new HashSet(); List list = sensitiveDao.findSensitive(); if(list.size()>0){ for(Sensitive s : list){ set.add(s); } } return set; } 在这个方法中我要调用dao层的方法findSensitive().sensitiveDa

SSH框架网上商城项目第23战之在线支付功能实现_java

         上一节我们做好了支付页面的显示,从上一节支付页面显示的jsp代码中可以看出,当用户点击确认支付时,会跳到${shop}/pay_goBank.action的action,也就是说,提交后我们得在payAction中的goBank方法中处理一些逻辑(即21节demo中的那个流程图的逻辑),即获得明文,将明文加密成签名(密文)然后再去访问易宝服务器,易宝连接银行,完成支付. 但是考虑到MVC设计模式,我们会将上面这些业务逻辑放到Service层中处理,所以下面我们来实现21节中那个

ssh框架web,自动生成hbm.xml和实体类

问题描述 ssh框架web,自动生成hbm.xml和实体类 ssh框架web,数据库由MySQL变oracle,myeclipse自动生成hbm.xml和实体类,Injection of resource dependencies failed.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'BHZControl': Injection of resource depe

我在用SSH框架里的反向工程的时候,选择了抽象类和dao类放在新建的user包里,为什么左后还是放在了缺省包

问题描述 我在用SSH框架里的反向工程的时候,选择了抽象类和dao类放在新建的user包里,为什么左后还是放在了缺省包.user包原先不存在,实在反向工程时填的 解决方案 解决方案二:就是hibernatereverseengineering里面的javapackage写了生成一个新包,把生成的实体类和dao类放进去那个包,可是生成的类全放到一个缺省包里了

SSH框架网上商城项目第10战之搭建商品类基本模块_java

前面我们完成了与商品类别相关的业务逻辑,接下来我们开始做具体商品部分.1. 数据库建表并映射Model首先我们在数据库中新建一张表,然后使用逆向工程将表映射成Model类,表如下: /*=============================*/ /* Table: 商品表结构 */ /*=============================*/ create table product ( /* 商品编号,自动增长 */ id int primary key not null auto_

SSH框架总结(框架分析+环境搭建+实例源码下载)(转)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序.   集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层).   Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管

SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示_java

网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要进入商品的详细信息页面,就像淘宝里面那样.那么每次点击都要去后台查询一下该商品的详细信息,就会发送相应的sql语句,每次刷新一下详细页面也会发sql语句,这样的话,性能肯定会受到很大的影响.那么使用Hibernate的二级缓存就可以解决这个问题. 有些人可能会想,我们可以使用重定向,这样的话,在用户第一次访问的时候把信息查出来放到session中,以后每次用户刷新就可以去session中拿了,这样就不用去数据库中

SSH框架网上商城项目第19战之订单信息级联入库以及页面缓存问题_java

购物车这一块还剩最后两个问题,就是订单信息的级联入库和页面缓存,这里的信息是指购物车和购物项,即我们将购物车的信息存入数据库的同时,也存入每个购物项的信息,而且外键都关联好,这涉及到了Hibernate中的级联入库问题:页面缓存问题指的是当用户确认了订单后,如果点后退,又会回到订单确认页面,刚刚的订单确认页面又出来了,而且session还在,信息还是刚刚的信息,这明显不是我们想要的结果,我们会在后面一一分析.这一节主要来讨论订单信息的级联入库以及页面的缓存问题.1. 订单信息的级联入库Hiber