spring注入2

本文详细介绍了Spring框架中的构造注入和自动注入机制。构造注入通过配置XML为对象属性提供值,可以通过index、name或type属性指定注入方式。自动注入分为byType和byName两种,前者依据类型匹配,后者依据属性名匹配。这些特性体现了Spring的IoC(控制反转)和DI(依赖注入)原则,实现了对象间的依赖关系解耦。

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

2.构造注入
    原理:通过有参构造,为对象中的属性进行对应的注入
    注意:必须提供有参构造
    ①<!-- index属性:有参构造方法中参数的下标 -->
    <constructor-arg index="0">
            <value>1</value>
        </constructor-arg>
        <constructor-arg index="1">
            <value>苹果</value>
        </constructor-arg>
        <constructor-arg index="2">
            <value>灵宝苹果真好吃</value>
    </constructor-arg>
    ②<!-- name属性:属性的名字 -->
    <constructor-arg name="id">
            <value>1</value>
        </constructor-arg>
        <constructor-arg name="orderName">
            <value>苹果</value>
        </constructor-arg>
        <constructor-arg name="describe">
            <value>灵宝苹果真好吃</value>
    </constructor-arg>
    ③<!-- type属性:根据属性的类型进行注入 -->
        <constructor-arg type="java.lang.Integer">
            <value>1</value>
        </constructor-arg>
        <constructor-arg type="java.lang.String">
            <value>苹果</value>
        </constructor-arg>
        <constructor-arg type="java.lang.String">
            <value>灵宝苹果真好吃</value>
        </constructor-arg>
3.自动注入
    应用场景:主要应用在自建类型
    I.autowire="byType"  根据类型进行对应的属性注入
        <bean id="userService" class="com.hp.service.UserServiceImpl" autowire="byType"></bean>
        扫描整个spring的配置文件,匹配与目标属性注入的相同类型,匹配到之后,自动为该属性进行注入。
    II.autowire="byName" 根据名称进行对应的属性注入
        <bean id="userService" class="com.hp.service.UserServiceImpl" autowire="byName"></bean>
        扫描整个spring的配置文件,匹配与目标属性名称相同的ID,匹配完成后,把由该标签创建的对象,自动注入到属性中
spring-core 核心模块
IOC(Inverse of Control) 控制反转
    控制:给对象中属性赋值的权利
    反转:把对象中属性赋值的权利由代码反转到了spring的配置文件中
    把给属性赋值的权利,由代码反转到了配置文件中
DI(Dependency Injection) 依赖注入
    概念:当一个类型需要另一个类型的时候,这两个类型就产生了依赖关系,那么我们就可以把其中的一个类型作为另一个类型的属性进行对应的注入。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值