Spring学习笔记 IOC DI

控制反转 IoC

    何为控制反转?我们先来说所谓的'正转',一般情况我们的业务需要多个类来完成,然后我们会在一个类中创建出这个类需要用到的对象以及一些外部资源。然而控制反转就是将这个控制权交出去,交给容器来负责。由容器来创建对象和其他资源,然后注入给对象。

依赖注入 DI

    依赖注入的作用就是告诉容器我要什么资源,容器知道之后会创建对应的资源交到我们手上。

    Spring框架有两种注入方式:注解注入、XML注入

 

  • 注解注入

        @Autowired

 

            容器发现这个注解后会根据类型自动查找匹配的bean进行注入,如果同类型存在多个bean,那么会根据变量名来进行注入。

 

        @Required

       RequiredAnnotationBeanPostProcessor 为该注解的处理器,即bean后置处理器,检查所有带有该解的bean属性是否设置,如果未设置则抛出异常。

        @Qualifier

       当创建了多个具有相同类型的bean时,这时候使用Autowired注入时会产生混乱,这时候就可以通过Qualifier注解进行表明,不过前提时这多个相同类型bean具有不同的名字。

  • XML注入

        属性注入

<bean id='people1' class='com.demo.people'>
    <property name="name" value="小白"/>    <!--变量名注入 此处不介绍其他方式-->
    <property name="age" value="24" />
</bean>

        构造器注入

<bean id="people2" class="com.demo.people" >    <!-- 要存在有name age参数的构造器才能产生bean-->
    <constructor-arg name="name" value="小白"/>
    <constructor-arg name="age" value="24"/>
</bean>

        静态工厂注入

package com.demo;
public class PeopleFactory{
    public static getPeople(String name,Integer age){
        return new People(name,age);
    }
}
<bean id="people3" class="com.demo.PeopleFactory" factory-method="getPeople">
     <constructor-arg name="name" value="小白"/>
     <constructor-arg name="age" value="24"/>
</bean>

        实例工厂注入

package com.demo;
public class PeopleFactory{
    public getPeople(String name,Integer age){
        return new People(name,age);
    }
}
<bean id='peopleFactory' class="com.demo.PeopleFactory"/>
<bean id="people4" factory-bean="peopleFactory" factory-method="getPeople">
    <constructor-arg name="name" value="小白"/>
    <constructor-arg name="age" value="24"/>
</bean>

文章关联代码-Spring依赖注入

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值