配置bean:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 给bean对象取个别名 -->
<alias name="stu" alias="testStu"/>
<!-- IOC 控制反转 == DI 依赖注入 -->
<!-- Student stu = new Student(); -->
<bean id="stu" class="com.my.bean.Student" >
<!--stu.setName()-->
<property name="name" value="小明" />
<!-- 注入一个班级 -->
<property name="cls" ref="myclass" />
<property name="age" value="13" />
</bean>
<bean id="myclass" class="com.my.bean.MyClass">
<!--name 对应的是类里面的属性名 -->
<property name="name" value="班级一"></property>
</bean>
测试bean写法:
public class Test {
public static void main(String[] args) {
/* Student stu = new Student();
stu.setName("小明");
stu.sayHi();*/
//实例化spring 容器
//IOC
ApplicationContext ac = new ClassPathXmlApplicationContext("com/config/beans.xml");
//System.out.println(ac);
Student stu = (Student) ac.getBean("testStu");
// stu.sayHi();
//Student stu = (Student) ac.getBean("stu");
//System.out.println("学生名:"+stu.getName() +" 班级:" +stu.getCls().getName()+" age:"+stu.getAge());
//第二种实例化spring 容器
//BeanFactory factory = new XmlBeanFactory(new ClassPathResource("com/config/beans.xml"));
//Student stu = (Student) factory.getBean("stu") ;
//System.out.println(stu.getName());
Emp emp = (Emp) ac.getBean("emp");
System.out.println(emp.getName()+" "+emp.getDept().getName());
}
}