学习spring第二天

3、hellospring

这个过程就叫控制反转:

控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建的,使用spring后,对象是由spring来创建的

反转:程序本身不创建对象,而变成被动的接受对象

依赖注入:就是利用set方法来进行注入的

ioc是一种编程思想,由主动的编程变成被动的接受

可以通过newClassPathXmlApplicationContext去浏览以下底层源码

ok,到了现在,我们彻底不用再程序中去改动了,要实现不同的操作,只需要在xml配置文件中进行修改,所谓的ioc就是:对象由spring创建,管理,装配

4、IOC创建对象的方式

1、使用无参构造创建对象,默认!

2、假设我们要使用有参构造创建对象。

​ 1、下标赋值

<bean id="user" class="host.qianlong.pojo.User">

        <constructor-arg index="0" value="breaking">constructor-arg>
    bean>

​ 2、类型


    <bean id="user" class="host.qianlong.pojo.User">
        <constructor-arg type="java.lang.String" value="qianloing"/>
    bean>

​ 3.通过参数名来设置


    <bean id="user" class="host.qianlong.pojo.User">
        <constructor-arg name="name" value="qianlong"/>
    bean>

总结:在配置文件加载的时候,容器中管理的对象已经初始化了!

5、spring配置

5.1、别名


<alias name="user" alias-"userNew">alias>

5.2、Bean的配置


5.3、import

这个import,一般用于团队开发使用,它可以将多个配置文件,导入合并为一个

假设,现在项目有多个人开发,这三个人负责不同的类开发,不同的类需要注册在不同的bean中,我们可以利用import将所有人的beans.xml合并为一个总的!

6、依赖注入

6.1、构造器注入

6.2、Set方式注入

  • 依赖注入:set注入
    • 依赖:Bean对象的创建依赖于容器
    • 注入:Bean对象中的所有属性,由容器来注入
<bean id="address" class="host.qianlong.pojo.Address" >
        <property name="address" value="xian"/>
    bean>
    <bean id="student" class="host.qianlong.pojo.Student">

        <property name="name" value="qianlong"/>

        <property name="address"  ref="address"/>

        <property name="books">
            <array>
                <value>三国演义value>
                <value>水浒传value>
                <value>西游记value>
                <value>红楼梦value>
            array>
        property>

        <property name="hobbies">
            <list>
                <value>唱歌value>
                <value>跳舞value>
                <value>写代码value>
            list>
        property>

        <property name="games">
            <set>
                <value>NBAvalue>
                <value>CFvalue>
                <value>LOLvalue>
            set>
        property>

        <property name="card">
            <map>
                <entry key="1" value="qianlong">entry>
                <entry key="2" value="zhangna">entry>
            map>
        property>
        <property name="wife">
            <null/>
        property>

        <property name="info">
            <props>
                <prop key="username">123prop>
                <prop key="password">456prop>
            props>
        property>
    bean>

你可能感兴趣的:(学习spring第二天)