spring的注解Resource和Autowired

问题描述:

  在写dubbo的client端代码时,使用<dubbo:reference interface="" />进行装配时,调用地方直接使用@Resource进行装配注入,程序启动总是报错:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘subscriptionService‘: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.hpe.bazaar.subscription.dao.SubscriptionDAOAdapter] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(mappedName=, shareable=true, description=, name=, type=class java.lang.Object, lookup=, authenticationType=CONTAINER)}

  查了好久都没找到问题,最后终于找到问题。

解决方案:

  <dubbo:reference id="" interface="" />

原因分析:

  其实是没有真正理解Resource的含义,Resource是把类注入到了另一个类里,并且启动时回去按照类型和id找对应的类装配,由于没有配置Resource的id对应的类型,所以没有找到依赖

时间: 2024-10-19 02:49:55

spring的注解Resource和Autowired的相关文章

Spring注解 @Resource和@Autowired

@Resource和@Autowired两者都是做bean的注入使用.其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spring支持该注解的注入. 共同点 两者都可以写在字段和setter方法上.两者如果都写在字段上,就不需要写写setter方法. 如果将@requied或者@autowired写了set方法之上,则程序会走到set方法内部.但如果写在了field之上,则不会进入set方法当中. 不同点 @Autowir

Spring 注解 @Resource和@Autowired

@Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spring支持该注解的注入. 共同点:两者都可以写在字段和setter方法上.两者如果都写在字段上,就不需要写写setter方法. 不同点如下: 先来说一说@Autowired @Autowired为Spring提供的注解, 需导入Package:org.springframework.beans.fa

Spring注解@Resource和@Autowired区别对比

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入. 1.共同点 两者都可以写在字段和setter方法上.两者如果都写在字段上,那么就不需要再写setter方法. 2.不同点 (1)@Autowired @Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.an

Spring 注解 @Resource和@Autowired(转)

鸣谢:http://my.oschina.net/u/216467/blog/205951 @Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spring支持该注解的注入. 共同点:两者都可以写在字段和setter方法上.两者如果都写在字段上,就不需要写写setter方法. 不同点如下: 先来说一说@Autowired @Autowired为Spring

Spring注解@Resource和@Autowired区别

一.相同点: @Autowired和@Resource作用基本相同,都是用于自动装配bean对象.都可以写在字段上,或写在setter方法上. 二.不同点: 1.出处不同 @Autowired(Spring注解,org.springframework.beans.factory.annotation.Autowired) @Resource(JAVA注解,javax.annotation.Resource).适用范围广,依赖小. 2.自动装配策略不同 @Resource 默认优先名称匹配, 具体

spring IOC 注解@Resource

[email protected](重要)a)加入 :j2ee/common-annotations.jar b)默认按名称,名称找不到,按类型 默认按照名称setName1到xml中找和id相同的,没有的话再找和SetName类型一样的 public class HelloWorld { SetName setName; @Resource public void setMessage(SetName setName1){ this.setName=setName1; System.out.p

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

URL:http://www.ulewo.com/user/10001/blog/273 我们在使用spring的时候经常会用到这些注解,那么这些注解到底有什么区别呢.我们先来看代码 同样分三层来看: Action 层: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Co

详细解析@Resource和@Autowired的区别 , 以及@Qualifier的作用

(41)  (0) 首先 . @Resource是javax.annotation 包中的注解类 , 是jdk中封装的 . @AutoWired是spring的中注解,依赖于spring上下文. 相同点: @Resource 和 @Autowired 都可以用在类中的field 或者function 上 , 在类初始化的时候 , 自动为field 赋值 , 自动为function注入参数并且执行该方法(不仅仅局限于set方法) . 不同点: 1. @Autowired 写在构造函数上,为构造器注

Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

原创整理不易,转载请注明出处:Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 代码下载地址:http://www.zuidaima.com/share/1772661373422592.htm 本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifi