当前位置:网站首页>ApplicationContext 与 BeanFactory 区别(MS)
ApplicationContext 与 BeanFactory 区别(MS)
2022-07-04 20:09:00 【Youcan.】
1. 从继承关系上来说,BeanFactory 是 的父类。BeanFactory 只是提供了基础操作Bean的方法,ApplicationContext除了拥有父类的基础操作之外,还提供了自己独有的功能。
2. 从性能方面上来说,ApplicationContext 是一次性加载并初始化所有的Bean对象,但是BeanFactory 是需要哪个Bean才去加载哪个Bean。
ApplicationContext 是在创建的时候就会将所有的bean初始化,第一次使用bean的时候快,启动比较慢,但是可能会造成资源浪费。BeanFactory不浪费任何资源,第一次加载bean比较慢。
import beans.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @program: first-spring
* @description: 通过ApplicationContext来获取对象
* @author: DRY
* @create: 2022-07-03 12:47
**/
public class App {
public static void main(String[] args) {
//1. 先得到上下文对象
ApplicationContext context =
new ClassPathXmlApplicationContext("spring-config.xml");
//2. 从spring上下文对象中获取bean
User user = (User)context.getBean("user");
//3. 使用对象(可以不使用)
user.sayHi("张丹");
}
}
import beans.User;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
/**
* @program: first-spring
* @description: 通过BeanFactory 来获取spring上下文对象
* @author: DRY
* @create: 2022-07-03 13:06
**/
public class App2 {
public static void main(String[] args) {
//1.先得到BeanFactory来获取对象
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
//2. 获取bean
User user = (User) beanFactory.getBean("user");
//3. 使用bean
user.sayHi("李四");
}
}
<?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.xsd">
<!-- 表示将一个bean对象存储到spring中(可以有多个bean标签)-->
<bean id="user" class="beans.User"></bean>
</beans>
这两个user必须保持相同。
边栏推荐
- Vue cleans up the keepalive cache scheme in a timely manner
- 仿ps样式js网页涂鸦板插件
- 扩展你的KUBECTL功能
- Flet tutorial 04 basic introduction to filledtonalbutton (tutorial includes source code)
- Advantages of RFID warehouse management system solution
- [micro service SCG] use of predict
- Go language notes (2) some simple applications of go
- go笔记(3)Go语言fmt包的用法
- 软件开发过中的采购
- word中插入圖片後,圖片上方有一空行,且删除後布局變亂
猜你喜欢
Some suggestions for interface design
admas零件名重复
Reinforcement learning - learning notes 2 | value learning
Automatic generation of interface automatic test cases by actual operation
PS vertical English and digital text how to change direction (vertical display)
How does the computer save web pages to the desktop for use
What if the computer page cannot be full screen? The solution of win11 page cannot be full screen
Hands on deep learning (III) -- convolutional neural network CNN
伦敦银走势图分析的新方法
RFID仓储管理系统解决方案的优点
随机推荐
TweenMax表情按钮js特效
GVM use
看腾讯大老如何做接口自动化测试
How does the computer save web pages to the desktop for use
【服务器数据恢复】某品牌服务器存储raid5数据恢复案例
Foxit pdf editor v10.1.8 green version
go笔记(3)Go语言fmt包的用法
Alibaba testers use UI automated testing to achieve element positioning
js 3D爆炸碎片图片切换js特效
宝塔 7.9.2 宝塔控制面板绕过 手机绑定认证 绕过官方认证
idea恢复默认快捷键
伦敦银走势图分析的新方法
阿里测试师用UI自动化测试实现元素定位
Golang中UTF编码和字符集
go语言笔记(2)go一些简单运用
扩展你的KUBECTL功能
软件开发过中的采购
多模输入事件分发机制详解
[micro service SCG] use of predict
uniapp 富文本编辑器使用