Error creating bean with name ‘userApplicationEvent’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ‘offerService’ is expected to be of type ‘com.api.OfferService’ but was actually of type ‘com.taobao.hsf.app.spring.util.HSFSpringProviderBean’
报错处理以及解决
主要为注解的问题
先了解下@Autowired和@Resource的使用和区别 : @Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。@Resource注解和@Autowired一样,也可以标注在字段或属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。 @Resources按名字,是jdk的,@Autowired按类型,是spring的。
a服务提供给b服务调用该service
b服务自己调用自己的的这个service 不能使用@Resource注解,hsf框架会找不到这个bean,换回@Autowired就好了