Spring-quartz2.2.1 关于bean的注入 (spring data jpa)
虽然解决了23行中的treeService 的注入问题,但是调用其方法getOneById时,
treeRepository又是null,怎么也注入不进,
如果是只在execute()方法中打印一句话,定时任务调用完全没有问题(这根本没有什么意义)
求大神指点!!!!!!!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
那持久层怎么办呢,treeRepository 怎么得到才行啊,那是一个interface
回复
我用的是spring+spring mvc+mybatis,持久层也是interface。用上面的方法也能在service里面获取到bean对象
其实就是,数据持久层还是保持原样,Quart容器中Service采用手动注册进去,一切就完美了。
1、spring的容器和quartz容器是两个独立的容器,quartz中获取spring的bean,需要自己写个工具类实现spring的ApplicationContextAware接口
quartz的task中获取bean:
其中,getBean("userService")中的userService为UserService.java类的注解@Service("userService")中的name。
2、ApplicationContext.java
贴出你的配置文件,Spring-Quartz中Spring容器和Quartz容器是独立的,需要手动注入的。
<!-- For times when you need more complex processing, passing data to the scheduled job -->
<bean name="firstComplexJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.ideal.job.FirstScheduledJob" />
<property name="jobDataMap">
<map>
<entry key="anotherBean" value-ref="anotherBean" />
<entry key="commonService" value-ref="commonService" />
</map>
</property>
<property name="durability" value="true" />
</bean>