Spring_IOC_Annotation_Resource

@Resource注解(使用频率很高):先看一个例子

private UserDAO userDao;

	public UserDAO getUserDao() {
		return userDao;
	}
	
	@Resource(name="配置文件中Bean的名字(或者id)")
	public void setUserDao(UserDAO userDao) {
		this.userDao = userDao;
	}

 这样容器会自动将Bean名字所对应的对象注入。

 

@Resource注解的注入规则(一定是按名字自动注入的:byName):

   1.@Resource指定了name属性的值-->@Resource(name="xxx"),这样容器会完全按照xxx去找配置文件,并且注入Bean,一旦没有找到,就会抛出异常

   2.@Resource未指定name属性的值。情况看起来有点复杂.

       1)如果注解定义在字段上,就按字段名去配置文件找,并自动装配进容器

       2)如果注解定义在字段的setter方法上,则按对应的字段(如setUserDao-->userDao)去配置文件找,并自动装配

     如果上面按照名字去找都没有找到,则按type再去找,找到,自动装配,找不到,抛出异常

 

为什么会这么麻烦呢?因为@Resource和@Autowire都可以定义到字段或者字段的setter方法上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值