这篇文章主要为大家展示了“spring有几种配置容器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring有几种配置容器”这篇文章吧。Spring提供了两种容器类型 &
这篇文章主要为大家展示了“spring有几种配置容器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring有几种配置容器”这篇文章吧。
Spring提供了两种容器类型
Springioc容器是一个ioC Service Provider。提供了两种容器类型:BeanFactory和ApplicationContext。Spring的IOC容器是一个提供IOC支持的轻量级容器。除了基本的ioc支持,它作为轻量级容器还提供了IOC之外的支持。
BeanFactory
BeanFactory是基础类型IOC容器。顾名思义,就是生产Bean的工厂。能够提供完整的IOC服务。没有特殊指定的话,其默认采用延迟初始化策略。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该对象进行初始化和依赖注入操作。因此,相对来说,容器启动初期的时候速度是比较快的。所需要的资源有限。所以,对资源有限,并且功能要求不是很严格的场景,BeanFactory是比较合适的IOC容器
BeanFactory有多种实现,其中,最常用的是XMLBeanFactory,它根据XML文件中的定义装载Bean。在创建XMLBeanFactory时,需要传递一个org.springframework.core.io.Resource的实例给构造器,此Resource实例用来提供XML文件给BeanFactory。
Spring提供了以下多种Resource的实现:
Resource实现 | 描述 |
1. org.springframework.core.io.ByteArrayResource | 定义内容由一组字节给定的资源 |
2. org.springframework.core.io.ClassPathResource | 定义可从classpath提起的资源 |
3. org.springframework.core.io.DescripiveResource | 定义包含资源描述符,但实际没有可读资源的资源 |
4. org.springframework.core.io.FileSyatemResource | 定义可从文件系统提取的资源 |
5. org.springframework.core.io.InputStreamResource | 定义可从输入流提取的资源 |
6. org.springframework.core.io.UrlResource | 定义可从给定URL提取的资源 |
7. org.springframework.WEB.portlet.context.PortletContextResource | 定义可用在portlet上下文中的资源 |
8. org.springframework.web.context.support.ServletContextResource | 定义可用在servlet上下文中的资源 |
例如使用FileSystemResource来创建一个XMLBeanFactory,代码如下:
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("c:/beans.xml")); MyBean myBean = factory.getBean("myBean");
ApplicationContext
ApplicationContext是在BeanFactory的基础上边构建的,是相对比较高级的容器的实现,除了拥有BeanFactory的所有支持,ApplicationContext还提供了其他的高级特性。例如事件发布、国际化信息支持等。ApplicationContext所管理的对象,在该类型容器启动之后,默认全部初始化并绑定完成。相对于BeanFactory来说,ApplicationContext会要求更多的系统资源。因为在启动时就完成了所有的初始化,容器启动的时间与BeanFactory相比会长一些。因此,ApplicationContext更适用于系统资源充足,并且要求更多功能的场景中。
ApplicationContext间接继承自BeanFactory,所以说它是构建与BeanFactory之上的IOC容器。
ApplicationContext的诸多实现中,经常会用到的有以下三种实现:
ApplicationContext实现 | 描述 |
1. org.springframework.context.support.ClassPathXMLApplicationContext | 从类路径中的XML文件载入上下文定义信息 |
2. org.springframework.context.support.FileSystemXmlApplicationContext | 从文件系统中的XML文件载入上下文定义信息 |
3. org.springframework.web.context.support.XMLWebApplicationContext | 从Web系统中的XML文件载入上下文定义信息 |
从文件系统或者类路径载入应用上下文与将Bean载入BeanFactory类似,例如:
ApplicationContext context1 = new FileSystemXmlApplicationContext("c:/beans.xml"); MyBean myBean = factory.getBean("myBean");
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); MyBean myBean = factory.getBean("myBean");
使用FileSystemXmlApplicationContext与ClassPathXMLApplicationContext的区别是:
前者只能在指定的路径中查找;后者可在整个类路径(包括JAR文件)中查找XML文件。
以上是“Spring有几种配置容器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!
--结束END--
本文标题: Spring有几种配置容器
本文链接: https://lsjlt.com/news/222298.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0