Spring笔记001----对象的注入方式

Spring笔记001----对象的注入方式

第一步 在pom中导入依赖
<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.3.7.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>4.3.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>4.3.7.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>4.3.7.RELEASE</version>
		</dependency>


		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.14</version>
		</dependency>
第二步 建立Spring容器(命名applicationContext.xml)在这里插入图片描述

对象的四种基本注入方式

第一种:依赖注入的方式:set注入
   <bean id="m1" class="com.swjd.bean.Man">
        <property name="id" value="1"/>
        <property name="name" value="狗子"/>
        <property name="age" value="38"/>
    </bean>
第二种:依赖注入的方式:带参的注入方式
 <bean id="m2" class="com.swjd.bean.Man">
        <constructor-arg index="0" type="int" value="2"/>
        <constructor-arg index="1" type="java.lang.String" value="蔡徐坤"/>
        <constructor-arg index="2" type="int" value="24"/>
    </bean>
第三种:依赖注入的方式:p命名空间注入
<bean id="m3" class="com.swjd.bean.Man" p:id="3" p:name="八戒" p:age="108"/>
第四种:依赖注入的方式:spel表达式注入
    <bean name="m4" class="com.swjd.bean.Man">
        <property name="id" value="#{m1.id}"/>
        <property name="name" value="#{m2.name}"/>
        <property name="age" value="#{m3.age}"/>
    </bean>

复杂注入方式

1.注入对象
<bean id="d1" class="com.swjd.bean.Dog">
        <property name="id" value="1"/>
        <property name="name" value="小黑"/>
        <property name="sex" value="公狗"/>
    </bean>

        <!--第一种:依赖注入的方式:set注入-->
    <bean id="m1" class="com.swjd.bean.Man">
        <property name="id" value="1"/>
        <property name="name" value="狗子"/>
        <property name="age" value="38"/>
	<--!(第一种写法)-->
        <property name="dog" ref="d1"/>
	<--!(第二种写法)-->
	<--!<property name="dog">
            <ref bean="d1"/>
        </property>-->
    </bean>

	<!--第二种:依赖注入的方式:带参的注入方式-->
    <bean id="m2" class="com.swjd.bean.Man">
        <constructor-arg index="0" type="int" value="2"/>
        <constructor-arg index="1" type="java.lang.String" value="蔡徐坤"/>
        <constructor-arg index="2" type="int" value="24"/>
        <constructor-arg index="3" type="com.swjd.bean.Dog" ref="d1"/>
    </bean>

	<!--第三种:依赖注入的方式:p命名空间注入-->
    <bean id="m3" class="com.swjd.bean.Man" p:id="3" p:name="八戒" p:age="108" p:dog-ref="d1"/>

    	<!--第四种:依赖注入的方式:spel表达式注入-->
    <bean name="m4" class="com.swjd.bean.Man">
        <property name="id" value="#{m1.id}"/>
        <property name="name" value="#{m2.name}"/>
        <property name="age" value="#{m3.age}"/>
        <property name="dog" ref="d1"/>
    </bean>

    <bean id="s1" class="com.swjd.bean.Student">
        <property name="name" value="古力娜扎"/>
    </bean>
2.注入数组
<property name="hobbies">
     <array>
        <value>唱歌</value>
        <value>穷哈</value>
        <value>学习</value>
     </array>
</property>
3.注入集合
<property name="subject">
    <list>
        <value>Spring</value>
        <value>Mybatis</value>
        <value>Android</value>
    </list>
</property>
4.注入map
    <property name="map">
            <map>
                <entry key="CN">
                    <value>中国</value>
                </entry>
                <entry key="RU">
                    <value>俄罗斯</value>
                </entry>
            </map>
    </property>

测试

public static void main(String[] args) {
    //1.启动spring容器
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    //2.拿对象
        System.out.println(context.getBean("m1", Man.class));
        System.out.println(context.getBean("m2", Man.class));
        System.out.println(context.getBean("m3", Man.class));
        System.out.println(context.getBean("m4", Man.class));
    }
原创文章 8 获赞 3 访问量 627

猜你喜欢

转载自blog.csdn.net/Wdani/article/details/105349746