Spring IOC控制反转

1、控制反转

将控制权赋予他人;

spring创建对象;

package x.y;

public class ThingOne {

    public ThingOne(ThingTwo thingTwo, ThingThree thingThree) {
        // ...
    }
}

通过xml等文件获取需要创建的对象名称、属性

二、依赖注入

1、构造器注入

构造器赋值

value用来赋值;

ref来指定自定义的类对象

A short-cut alternative to a nested "<ref bean='...'/>".
<beans>
    <bean id="beanOne" class="x.y.ThingOne">
        <constructor-arg ref="beanTwo"/>
        <constructor-arg ref="beanThree"/>
    </bean>

    <bean id="beanTwo" class="x.y.ThingTwo"/>

    <bean id="beanThree" class="x.y.ThingThree"/>
</beans>

2、set注入

依赖:bean对象的创建依赖容器

注入:bean对象中所有属性,由容器来注入

调用无参数构造函数或无参数静态工厂方法来实例化bean。

3、扩展方式注入

p标签,注入属性

c标签:注入构造器参数

XML:扩展标记语言

alias         别名

4、自动装配bean

1、sutowire="byName"/"byType"  通过id自动找需要的引用数据类型;

2、使用注解(反射调用)

@Required  避免 NullPointerException

@Autowired可以注解在set方法、构造器、属性

public class People {
    @Autowired(required = false)//表示属性可以为null
    private Cat cat;
    @Autowired
    private Dog dog;
    private String name;

    public Cat getCat() {
        return cat;
    }
    public Dog getDog() {
        return dog;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "People{" +
                "cat=" + cat +
                ", dog=" + dog +
                ", name='" + name + '\'' +
                '}';
    }
}

@Autowired通过byType的方式实现,

@Qualifier通过name 实现。

@Resource默认通过by name实现,if can‘t find ,则byType;

springmvc

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值