spring-bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<!-- 配置bean -->
<bean id="helloWorld" class="com.dasenlin.test.beans.HelloWorld">
<property name="name2" value="Spring"></property>
</bean>
<bean id="helloWorld2" class="com.dasenlin.test.beans.HelloWorld">
<property name="name2" value="Spring4test"></property>
</bean>
<bean id="car" class="com.dasenlin.test.beans.Car">
<constructor-arg value="BMW" index="0"></constructor-arg>
<constructor-arg index="1">
<value><![CDATA["Shanghai^&"]]></value>
</constructor-arg>
<constructor-arg value="260" type="int"></constructor-arg>
</bean>
<bean id="car2" class="com.dasenlin.test.beans.Car">
<constructor-arg value="Jeep" type="java.lang.String"></constructor-arg>
<constructor-arg value="dddd" type="java.lang.String"></constructor-arg>
<constructor-arg value="30000.00" type="double"></constructor-arg>
</bean>
<bean id="person" class="com.dasenlin.test.beans.Person">
<property name="name" value="Ton"></property>
<property name="age" value="24"></property>
<!-- <property name="car" ref="car2"></property> -->
<!-- <property name="car">
<ref bean="car2"/>
</property> -->
<!-- 内部bean,不能被外部应用 -->
<property name="car">
<bean id="car3" class="com.dasenlin.test.beans.Car">
<constructor-arg value="Forde"></constructor-arg>
<constructor-arg value="ddddd"></constructor-arg>
<constructor-arg value="20000.00"></constructor-arg>
</bean>
</property>
</bean>
<!-- 为级联属性赋值 -->
<bean id="person2" class="com.dasenlin.test.beans.Person">
<constructor-arg value="Jerry"></constructor-arg>
<constructor-arg value="25"></constructor-arg>
<constructor-arg ref="car"></constructor-arg>
<!-- <property name="car.maxSpeed" value="1244"></property> -->
<!-- <constructor-arg><null/></constructor-arg> -->
</bean>
<bean id="person3" class="com.dasenlin.test.beans.Person">
<property name="name" value="xiaomi"></property>
<property name="age" value="30"></property>
<property name="cars">
<list>
<ref bean="car"/>
<ref bean="car2"/>
<bean id="car3" class="com.dasenlin.test.beans.Car">
<constructor-arg value="Forde"></constructor-arg>
<constructor-arg value="ddddd"></constructor-arg>
<constructor-arg value="20000.00"></constructor-arg>
</bean>
</list>
</property>
</bean>
<bean id="newperson" class="com.dasenlin.test.beans.Person2">
<property name="name" value="rose"></property>
<property name="age" value="27"></property>
<property name="cars">
<map>
<entry key="AA" value-ref="car"></entry>
<entry key="BB" value-ref="car2"></entry>
</map>
</property>
</bean>
<bean id="datasource" class="com.dasenlin.test.beans.collection.DataSource">
<property name="properties">
<props>
<prop key="user">root</prop>
<prop key="password">1234</prop>
<prop key="jdbcUrl">jdbc:mysql:///test</prop>
<prop key="driverClass">com.mysql.jdbc.Driver</prop>
</props>
</property>
</bean>
<util:list id="cars">
<ref bean="car"/>
<ref bean="car2"/>
</util:list>
<bean id="person4" class="com.dasenlin.test.beans.Person">
<property name="name" value="Jack"></property>
<property name="age" value="25"></property>
<property name="cars" ref="cars"></property>
</bean>
<bean id="person5" class="com.dasenlin.test.beans.Person" p:name="Que" p:age="25" p:cars-ref="cars" >
</bean>
</beans>
实体类
package com.dasenlin.test.beans;
public class Car {
private String brand;
private String corp;
private double price;
private int maxSpeed;
public Car(String brand, String corp, double price) {
super();
this.brand = brand;
this.corp = corp;
this.price = price;
}
public Car(String brand, String corp, int maxSpeed) {
super();
this.brand = brand;
this.corp = corp;
this.maxSpeed = maxSpeed;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getCorp() {
return corp;
}
public void setCorp(String corp) {
this.corp = corp;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getMaxSpeed() {
return maxSpeed;
}
public void setMaxSpeed(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
@Override
public String toString() {
return "Car [brand=" + brand + ", corp=" + corp + ", price=" + price + ", maxSpeed=" + maxSpeed + "]";
}
}
package com.dasenlin.test.beans;
public class HelloWorld {
private String name;
public String getName() {
return name;
}
public void setName2(String name) {
this.name = name;
}
public void hello() {
System.out.println(name);
}
}
package com.dasenlin.test.beans;
import java.util.List;
public class Person {
private String name;
private Integer age;
private Car car;
private List<Car> cars;
public Person() {
super();
// TODO Auto-generated constructor stub
}
/*public Person(String name, Integer age, Car car) {
super();
this.name = name;
this.age = age;
this.car = car;
}*/
public String getName() {
return name;
}
public Person(String name, Integer age, List<Car> cars) {
super();
this.name = name;
this.age = age;
this.cars = cars;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public List<Car> getCars() {
return cars;
}
public void setCars(List<Car> cars) {
this.cars = cars;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", cars=" + cars + "]";
}
}
package com.dasenlin.test.beans;
import java.util.Map;
public class Person2 {
private String name;
private Integer age;
private Map <String,Car> cars;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Map<String, Car> getCars() {
return cars;
}
public void setCars(Map<String, Car> cars) {
this.cars = cars;
}
@Override
public String toString() {
return "Person2 [name=" + name + ", age=" + age + ", cars=" + cars + "]";
}
}
package com.dasenlin.test.beans.collection;
import java.util.Properties;
public class DataSource {
private Properties properties;
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
@Override
public String toString() {
return "Properties [properties=" + properties + "]";
}
}
main方法
package com.dasenlin.test.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.dasenlin.test.beans.collection.DataSource;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
/*HelloWorld helloWorld = new HelloWorld();
helloWorld.setName("xiao mi java 8");*/
//1.创建spring对象的IOC容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-bean.xml");
//2.从IOC容器中获取bean实例
HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");
helloWorld.hello();
//HelloWorld helloWorld = ctx.getBean(HelloWorld.class);
helloWorld = (HelloWorld) ctx.getBean("helloWorld2");
helloWorld.hello();
Car car = (Car)ctx.getBean("car");
System.out.println(car);
car = (Car) ctx.getBean("car2");
System.out.println(car);
Person person = (Person) ctx.getBean("person3");
System.out.println(person);
Person2 person2 = (Person2) ctx.getBean("newperson");
System.out.println(person2);
DataSource dataSource = (DataSource) ctx.getBean("datasource");
System.out.println(dataSource);
Person person4 = (Person) ctx.getBean("person4");
System.out.println(person4);
Person person5 = (Person) ctx.getBean("person5");
System.out.println(person5);
}
}