spring07使用注解实现自动装配

本文介绍Spring框架中的依赖注入方法,包括@Autowired、@Qualifier和@Resource注解的使用方式及区别。探讨了如何通过这些注解实现自动装配,以及它们在面对多个相同类型Bean时的不同处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.导入约束
两个约束需要导入beans.xml中

       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

2.配置注解的支持

<!--  开启注解的支持      -->
        <context:annotation-config/>

3.@Autowired注解
可以直接在属性上使用,也可以在set方法上面使用

import org.springframework.beans.factory.annotation.Autowired;
		@Autowired
        private Dog dog;
        @Autowired
        private Cat cat;
        <bean id="cat" class="com.ybw.pojo.Cat"/>
        <bean id="dog" class="com.ybw.pojo.Dog"/>
        <bean id="people3" class="com.ybw.pojo.People"/>

@Autowired中有一个属性required,如果等于false,说明这个对象可以为null。
@Autowired符合byType,先查询类型,有多个相同类型的话再根据id来查询,如果id和字段名也不同则需要搭配@Qualifier

4.@Qualifier
如果有多个id,并且有多个相同类型的话可以使用@Qualifier区分

		@Autowired
        @Qualifier(value = "cat11")
        private Cat cat;
        <bean id="cat11" class="com.ybw.pojo.Cat"/>
        <bean id="cat111" class="com.ybw.pojo.Cat"/>

这样就会匹配到第一个的id

5.@Resource(第二种注解,用的比较多)
先通过名字来寻找,如果寻找不到会通过类型就行寻找

import javax.annotation.Resource;

      	@Resource(name = "dog22")
        private Dog dog;

如果相同类型还有多个的话,可以使用name属性赋值进行查询。

        <bean id="dog22" class="com.ybw.pojo.Dog"/>
        <bean id="dog222" class="com.ybw.pojo.Dog"/>

例子中这样查询出来的话就是第一个bean

区别
相同点:都是用来自动装配的,都可以放在属性字段上
不同点:
@Autowired默认先通过的是byType方式实现,如有多个相同类型的话再根据id来查询,如果id和属性字段名也不同则需要搭配@Qualifier。
@Resource默认通过byName的方式实现,如果找不名字,会通过byType实现,如果还有多个相同类型的话,就会报错,这时候就需要就需要name属性进行赋值。
一个是基于spring框架的。
一个是基于java环境下的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值