ApplicationContext和BeanFactory

ApplicationContext初始化:

public class SpringTest {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		//BeanFactory factory = context;
		Car car = (Car) context.getBean("car");
		System.out.println(car.getColor());
         }
}

BeanFactory初始化:

public class SpringTest {
	public static void main(String[] args) {

		Resource resource = new ClassPathResource("beans.xml");
		BeanFactory factory = new XmlBeanFactory(resource);
		System.out.println(((Car) factory.getBean("car")).getColor());
	
	}

}

beans.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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="car" class="com.yu.Car"
	p:color="红色"
	p:speed="200"
	p:brand="大众"
	/>
</beans>

Car.java

package com.yu;


public class Car {
private String color;
private int speed;
private String brand;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}


}

使用类注解的配置方式:

beans.java

package com.yu;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Beans {
	@Bean(name="car")
	public Car bulidCar(){
		Car car = new Car();
		car.setBrand("奥迪");
		car.setColor("白色");
		car.setSpeed(300);
		return car;
	}
}
public class SpringTest {
	public static void main(String[] args) {
		/*通过带有@Configuration的POJO装载Bean配置*/
		/*ApplicationContext context = new AnnotationConfigApplicationContext(Beans.class);
		Car car = (Car) context.getBean("car");
		System.out.println(car.getBrand());
	}

}
ApplicationContext初始化和BeanFactory最重要的区别:BeanFactory在初始化容器时,并未实例化
Bean,直到第一次访问某个Bean时才初始化目标Bean,而ApplicationContext在初始化应用上下文时就初始化所有单实例的Bean。因此,ApplicationContext初始化时间比BeanFactory稍长一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值