0
点赞
收藏
分享

微信扫一扫

Spring中,使用工具类无法自动注入service


这个问题我其实遇到很久了,目前解决方案是手动注入service,并且把工具类也手动注入。

场景:

在spring中,我们经常会定义工具类来做一些奇怪的事情,我当前是通过定时任务quarz调度工具类,工具类再调service,如果采用自动注入的方式,会报错:

Caused by: 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.aa.logic.service.MyService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)

很常见的错误,于是我就改成手动注入的方式,不在实现类中用@Service注解,采用在spring配置文件中手动注入bean的方式,

bean id="myService" class="com.aa.logic.service.impl.MyServiceImpl"></bean>

<bean id="autoCalcUtil" class="com.aa.logic.utils.AutoCalcUtil">
<property name="myService" ref="myService"></property>
</bean>

这样的话,是可以正常搞定的。


举报

相关推荐

0 条评论