ssh框架,用注释完成的,普通类怎么调用service层 @Resourc报错空指针 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 @Autowired用这个注解 @Resource放这里是是情况 普通类,你的类必须需要spring的bean管理,否则只能自己通过读取spring配置文件的形式getBean来实例化对象 你的这个普通类没有加载到spring的配置文件里面 你要在普通类里面拿就有ApplicationContext 类的getBean吧 2楼说得对,你只是用@Resource注册实例化了service但是你没有get与set@Autowired就是get与set引用的 请参见三楼和四楼。 普通类也是需要交给spring去管理,这样才可以调用service。或者在类上加上注解@Component 你这个类没有用spring管理,所以没法注入,如果需要在一些静态方法里面调用到bean,可以编写一个listener类,在初始化时保存上下文:public void contextInitialized(ServletContextEvent event) { super.contextInitialized(event); applicationContext = WebApplicationContextUtils .getRequiredWebApplicationContext(event.getServletContext()); }在其他类里面用applicationContext.getBean(beanName)就可以获得到了 @Componentpublic class XYDBTask extends TimerTask {@Autowiredprivate IDeviceConfigService deviceConfigService;}这样就应该没问题了,@Component注解会让spring管理这个类,@Autowired会注入你需要的Service 要么生成set方法,在spring中的XYDBTask注入deviceConfigService要么通过spring的getBeanId去取 话说调用service层的话是要在spring加配置文件的 嗯,三楼,四楼正解,普通类想要调用service管理的类,需要在spring的配置文件里进行配置,要不然,spring不管理的东西,是用不了它的service的 把private IDeviceConfigService deviceConfigService属性的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无法注入的 肯定为空的。 Struts中的OGNL求解。 如何实现一个注册登陆啊? struts2 链接如何使用? 查看struts源代码 Frame中打印预览问题求助 用jsp做电子地图,请教高人! 为什么抛出许多异常? tomcat 与 Oracle连接 再利用JavaBean连接查询数据库时的一些疑问 通过读取.ts后缀的二进制数据来判断这个ts文件是音频还是视频,用java实现 Struts2和Hibernate保存带外键的数据库对象 好诡异的现象----求解释
用这个注解 @Resource放这里是是情况
但是你没有get与set
@Autowired就是get与set引用的
super.contextInitialized(event);
applicationContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(event.getServletContext());
}
在其他类里面用applicationContext.getBean(beanName)就可以获得到了
public class XYDBTask extends TimerTask {@Autowired
private IDeviceConfigService deviceConfigService;}
这样就应该没问题了,@Component注解会让spring管理这个类,@Autowired会注入你需要的Service
要么通过spring的getBeanId去取
如果是spring的管理的话,那么必须在这个类上加上 @Repository |@Service | @Controllo |@Component,
加上以后,就是spring管理的类了,
楼主要想让该类 脱离spring的管理,那么就必须手动的 把service层的类进行实例化,不然空指针问题不会得到解决的。