Spring入门之两个bean容器的介绍
来源:互联网 发布:mac鼠标滚轮 编辑:程序博客网 时间:2024/06/08 10:03
BeanFactory容器
在Spring中,有大量对BeanFactory接口的实现。其中,最常被使用的是XmlBeanFactory类。这个容器从一个XML文件中读取配置元数据,由这些元数据来生成一个被配置化的系统或者应用。
在资源宝贵的移动设备或者基于applet的应用当中, BeanFactory会被优先选择。否则,一般使用的是ApplicationContext,除非你有更好的理由选择BeanFactory。
BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身, BeanFactory 是类的通用工厂,它可以创建并管理各种类的对象
BeanFactory的初始化顺序:
1.创建配置文件2.装载配置文件3.启动Ioc容器4.获取bean实例
通过 BeanFactory 启动 IoC 容器时,并不会初始化配置文件中定义的 Bean,初始化动作发生在第一个调用的时候
对于单实例的 Bean 来说,BeanFactory 会缓存 Bean 实例,所以第二次使用 getBean() 方法时就可以直接从 IoC 容器的缓存中获取 Bean 实例
BeanFactory容器的使用示例:
第一步利用框架提供的XmlBeanFactory() API去生成工厂bean以及利用ClassPathResource() API去加载在路径CLASSPATH下可用的bean配置文件。XmlBeanFactory() API负责创建并初始化所有的对象,即在配置文件中提到的bean。
第二步利用第一步生成的bean工厂对象的getBean()方法得到所需要的bean。 这个方法通过配置文件中的bean ID来返回一个真正的对象,该对象最后可以用于实际的对象。一旦得到这个对象,就可以利用这个对象来调用任何方法。
实现代码
bean类:public class HelloSpring { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 配置bean --> <bean id="hello" class="org.spring.test.HelloSpring"> <property name="message" value="成兮"></property> </bean></beans>测试主程序public class TestMain { //BeanFactory容器测试 public static void main(String[] args){ XmlBeanFactory beanfac = new XmlBeanFactory(new ClassPathResource("beans.xml")); HelloSpring test = beanfac.getBean("hello",HelloSpring.class); System.out.println(test.getMessage()); }}
在初始化 BeanFactory 时必须为其提供一种日志框架,一般使用 Log4J,即在类路径下提供 Log4J 的配置文件,这样,启动 Spring 容器时才不会报错
ApplicationContext容器
ApplicationContext 建立在 BeanFactory 基础之上,提供了更多面向应用的功能,它提供了国际化支持和框架事件体系,更易于创建实际应用
一般称 BeanFactory 为 IoC 容器,而称 ApplicationContext 为 应用上下文
ApplciationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合都直接使用 ApplicationContext,而非底层的 BeanFactory
BeanFactory 在初始化容器时,并未实例化 Bean,直到第一次访问某个Bean 时才实例目标 Bean,而 ApplicationContext 则在初始化应用上下文时就实例化所有单实例的 Bean
ApplicationContext容器的两种常用实现类:
ClassPathXmlApplicationContext: 从类路径中加载配置文件
FileSystemXmlApplicationContext:从文件系统中加载配置文件
ApplicationContext容器的使用实例:
bean类:public class HelloSpring { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 配置bean --> <bean id="hello" class="org.spring.test.HelloSpring"> <property name="message" value="成兮"></property> </bean></beans>测试主程序public class TestMain { //ApplicationContext容器测试 public static void main(String[] args){ ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); HelloSpring test = beanfac.getBean("hello",HelloSpring.class); System.out.println(test.getMessage()); }}
转载来源:
Spring的IoC容器-Spring BeanFactory容器
BeanFactory和ApplicationContext的介绍
阅读全文
0 0
- Spring入门之两个bean容器的介绍
- Spring入门篇之Bean容器的初始化
- Spring入门(基于Java的容器注解之@Bean)
- Spring学习二:Spring管理Java Bean的容器介绍
- Spring之Bean容器初始化以及bean实例的获取
- Spring入门——基于Java的容器注解说明之@bean
- Spring之核心容器bean
- Spring之核心容器bean
- Spring之核心容器bean
- Spring进阶之路(3)-bean获得Spring的容器
- Spring进阶之路(3)-bean获得Spring的容器
- Spring入门——Spring Bean装配之基于Java的容器注解说明@ImportResource和@Value
- Spring入门之bean的属性
- Spring入门之bean的配置
- 介绍 Spring IoC 容器和 bean
- 介绍 Spring IoC 容器和 bean
- 介绍 Spring IoC 容器和 bean
- 介绍 Spring IoC 容器和 bean
- 二分查找
- JAVA MAP 遍历
- Camera 图像处理原理分析
- 学习
- RabbitMQ之路由 fanout方式
- Spring入门之两个bean容器的介绍
- linux虚拟机安装jdk
- Android6.0权限
- 让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型
- JDBC
- 快速导出hive表结构脚本:
- TF Learn入门 —— 稍复杂使用举例
- 云平台建设学习4
- offset系列、client系列、scroll系列的属性