Spring 之 Annotation-->>@Autowired & @Qualifier

Annotation注解:

     JDK1.5之后开始提供支持

    在Spring IoC部分中,对于bean的配置,有两种方式,一种是通过xml来配置,另外一种就是使用Annotation

    @Autowired注解的意思是自动装配(自动注入属性)

    比如我们有一个UserDAO需要被注入,我们可以这样写:


<bean id="u1" class="com.ccniit.dao.impl.UserDAOImpl"></bean>

其中UserDAOImpl是UserDAO的实现类,UserDAO是一个接口

在java代码中,我们这样将  u  注入进去:

@Autowired会自动的在xml文件中寻找与UserDAO类型相同的bean并且注入进去(经过简单的实验,xml文件中只能有一个UserDAO的bean,否则会报错)

	private UserDAO userDAO;

	@Autowired
	public void setUserDAO(UserDAO userDAO)
	{
		this.userDAO = userDAO;
	}

这样之后,我们就能使用这个userDAO了,如果这里不加@Autowired注解,xml配置文件里面也没有进行ref方式的注入,那么,运行程序的时候会报userDAO的空指针错误

上面说过,@Autowired是寻找类型注入的所以是byType类型,所以两个相同的类型会报错误,怎么解决这个问题呢?

这里我们就要用到@Qualifier了,如下:

xml:

	<bean id="u1" class="com.ccniit.dao.impl.UserDAOImpl">
		<property name="uId" value="1"></property>
	</bean>

	<bean id="u2" class="com.ccniit.dao.impl.UserDAOImpl">
		<property name="uId" value="2"></property>
	</bean>

java:

	@Autowired
	@Qualifier(value = "u2")
	public void setUserDAO(UserDAO userDAO)
	{
		this.userDAO = userDAO;
	}

这样,我们找到的就是id为u2的类,为了区分它们,我们给这个实现类加一个ID值分别赋值为1和2,在上面的xml代码中有体现了。

u2的运行打印结果:

uId = 2

u1的运行打印结果:

uId = 1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值