BeanFactory和ApplicationContext的区别

1.设么是Bean?

Spring最大的特点就是IOC控制反转,IOC容器中装的就是Bean对象,Bean也就是spring、容器管理的java对象,在spring中可以通过xml文件配置。

//新建HelloWord类,通过xml将其托管
public class HelloWorld {
   private String message;
   public void setMessage(String message){
      this.message  = message;
   }
   public void getMessage(){
      System.out.println("My Message : " + message);
   }
}
<?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-3.0.xsd">
   <bean id = "helloWorld" class = "com.zoltanraffai.HelloWorld">
      <property name = "message" value = "Hello World!"/>
   </bean>
</beans>

2.BeanFactory

BeanFactory是Spring的基础接口,提供了访问容器的基础方法,其中常用的就是getBean拿到实例。一般通过XMLBeanFactory实现类获取。

public class HelloWorldApp{
   public static void main(String[] args) {
      XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("beans.xml"));
      HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");
      obj.getMessage();
   }
}

3.ApplicationContext

ApplicationContext继承自BeanFactory接口,ApplicationContext包含了BeanFactory中所有的功能。

    1.可以支持国际化

    2.载入多个上下人关系,使得每一个上下文都专注于特定的层次,比如web层

    3.BeanFactory采用延迟加载,只有在使用bean的时候才会进行实例化,如果某个属性没有注入,只能在调用getBean()的时候才会抛出异常。

     4.二者都支持PostProcesser,但是BeanFactory需要手动的注册,而ApplicationContext会自动检测bean对应的java类是否实现了BeanFactory。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值