//创建容器,索要对象,
package cn.lijun.Test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.lijun.domain.Qiang;
import cn.lijun.domain.User;
public class TestDemo {
// @Test
//
// public void fun1(){
// //1创建容器对象
// ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
// //2 向容器要对象
// User bean = (User)ac.getBean("user");
// System.out.println(bean);
//
// }
// @Test
// public void fun2(){
// //1创建容器对象
// ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
// //2 向容器要对象
// User bean = (User)ac.getBean("user1");
// System.out.println(bean);
//
// }
// @Test
// public void fun3(){
// //1创建容器对象
// ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
// //2 向容器要对象
// User bean = (User)ac.getBean("user2");
// System.out.println(bean);
//
// }
// @Test
// public void fun3(){
// //1创建容器对象
// ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
// //2 向容器要对象
// User bean = (User)ac.getBean("user3");
// System.out.println(bean);
//
// }
@Test
public void fun4(){
//1创建容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//2 向容器要对象
Qiang bean = (Qiang)ac.getBean("qi");
System.out.println(bean);
}
}
//存储属性的集中方法
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<!-- 1 set注入方式 -->
<bean name="user" class="cn.lijun.domain.User">
<property name="name" value="qiang"></property>
<property name="age" value="18"></property>
<!-- 为引用类型注入 为car 注入 属性 -->
<property name="car" ref="car"></property>
</bean>
<!-- 将car对象配置到容器中 -->
<bean name="car" class="cn.lijun.domain.Car">
<property name="name" value="兰博基尼"></property>
<property name="color" value="红色"></property>
</bean>
<!-- 2 构造函数注入 -->
<bean name="user1" class="cn.lijun.domain.User">
<constructor-arg name="name" value="sdfjkah"></constructor-arg>
<constructor-arg name="age" type="java.lang.Integer" value="99"></constructor-arg>
<constructor-arg name="car" ref="car" ></constructor-arg>
</bean>
<!-- p名称空间注入 走set方法 -->
<bean name="user2" class="cn.lijun.domain.User" p:name="ashjkhkasf" p:age="999" p:car-ref="car">
</bean>
<!-- spel注入 spring Exception Language spring 表达式语言 -->
<bean name="user3" class="cn.lijun.domain.User">
<property name="name" value="#{user.name}"></property>
<property name="age" value="#{user2.age}"></property>
<property name="car" ref="car"></property>
</bean>
<!-- 复杂类型注入 -->
<bean name="qi" class="cn.lijun.domain.Qiang">
<!-- 一个数组中 只准备注入一个值 直接用value/ref -->
<property name="arr">
<array>
<value>qiang</value>
<value>ashj</value>
<ref bean="user2"></ref>
</array>
</property>
<property name="map">
<map>
<entry key="url" value="jdbc:mysql:///crm"></entry>
<entry key="user" value-ref="user3"></entry>
</map>
</property>
<property name="list">
<list>
<value>rose</value>
<value>asfhjksjkdfjhjasdfdjk</value>
<ref bean="user2"></ref>
</list>
</property>
<property name="prop">
<props>
<prop key="drivarClass">com.jdbc.nysql.Driver</prop>
<prop key="userName">root</prop>
<prop key="password">root</prop>
</props>