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) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
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));
}