001.SpringIoc初体验
1.创建entity(Apple、Child)
package com.imooc.spring.ioc.entity; public class Apple { private String title; private String color; private String origin; public Apple() { } public Apple(String title, String color, String origin) { this.title = title; this.color = color; this.origin = origin; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getOrigin() { return origin; } public void setOrigin(String origin) { this.origin = origin; } }
package com.imooc.spring.ioc.entity; public class Child { private String name; private Apple apple; public Child() { } public Child(String name, Apple apple) { this.name = name; this.apple = apple; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Apple getApple() { return apple; } public void setApple(Apple apple) { this.apple = apple; } public void eat() { System.out.println(name + "吃到了" + apple.getOrigin() + "种植的" + apple.getTitle()); } }
2.在applicationContext.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" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <!--在Ioc容器启动时,自动由Spring实例化Apple对象,取名为sweetApple放到容器中--> <bean id="sweetApple" class="com.imooc.spring.ioc.entity.Apple"> <property name="title" value="红富士"/> <property name="origin" value="欧洲"/> <property name="color" value="红色"/> </bean> <bean id="sourApple" class="com.imooc.spring.ioc.entity.Apple"> <property name="title" value="青苹果"/> <property name="origin" value="中亚"/> <property name="color" value="绿色"/> </bean> <bean id="softApple" class="com.imooc.spring.ioc.entity.Apple"> <property name="title" value="金帅"/> <property name="origin" value="中国"/> <property name="color" value="黄色"/> </bean> <bean id="rdApple" class="com.imooc.spring.ioc.entity.Apple"> <property name="title" value="蛇果"/> <property name="origin" value="美国"/> <property name="color" value="红色"/> </bean> <bean id="lily" class="com.imooc.spring.ioc.entity.Child"> <property name="name" value="莉莉"/> <property name="apple" ref="sweetApple"/> </bean> <bean id="andy" class="com.imooc.spring.ioc.entity.Child"> <property name="name" value="安迪"/> <property name="apple" ref="rdApple"/> </bean> <bean id="luna" class="com.imooc.spring.ioc.entity.Child"> <property name="name" value="露娜"/> <property name="apple" ref="softApple"/> </bean> </beans>
3.在SpringApplication中测试
package com.imooc.spring.ioc; import com.imooc.spring.ioc.entity.Apple; import com.imooc.spring.ioc.entity.Child; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringApplication { public static void main(String[] args) { //创建SpringIoc容器,并根据配置文件在容器中实例化 ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); Apple sweetApple = context.getBean("sweetApple", Apple.class); System.out.println(sweetApple.getTitle()); Child lily = context.getBean("lily", Child.class); lily.eat(); Child andy = context.getBean("andy", Child.class); andy.eat(); Child luna = context.getBean("luna", Child.class); luna.eat(); } }
4.测试结果