当前位置:网站首页>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必须保持相同。
边栏推荐
- jekins初始化密码没有或找不到
- 阿里云国际版CDN的优势
- VIM asynchronous problem
- word中使用自动插入题注功能
- 阿里测试师用UI自动化测试实现元素定位
- Idea configuration standard notes
- Flet tutorial 06 basic introduction to textbutton (tutorial includes source code)
- LeetCode+ 81 - 85 单调栈专题
- Jmeter 之压测入门
- MySQL - database query - use of aggregate function, aggregate query, grouping query
猜你喜欢

【观察】联想:3X(1+N)智慧办公解决方案,释放办公生产力“乘数效应”

工厂从自动化到数字孪生,图扑能干什么?

《动手学深度学习》(三) -- 卷积神经网络 CNN

shp数据制作3DTiles白膜

MySQL --- 数据库查询 - 聚合函数的使用、聚合查询、分组查询

RFID仓库管理系统解决方案有哪些功能模块

Pytorch---使用Pytorch实现LinkNet进行语义分割

What if the computer page cannot be full screen? The solution of win11 page cannot be full screen

From automation to digital twins, what can Tupo do?

搭建一个仪式感点满的网站,并内网穿透发布到公网 1/2
随机推荐
BFC面试简述
Record the online bug solving list (unfinished to be continued 7/4)
nmap扫描
Idea plug-in
基于OpenCV haarcascades的对象检测
【optimtool.unconstrain】无约束优化工具箱
五子棋 上班摸鱼工具 可局域网/人机
async await 在map中使用
Qt五子棋人机对战画棋子之QPainter的使用误区总结
The concept and application of hash table
mysql语句执行详解
《动手学深度学习》(三) -- 卷积神经网络 CNN
阿里测试师用UI自动化测试实现元素定位
admas零件名重复
js 3D爆炸碎片图片切换js特效
Leetcode+ 81 - 85 monotone stack topic
Redis:Redis配置文件相关配置、Redis的持久化
vim异步问题
记一次重复造轮子(Obsidian 插件设置说明汉化)
记一次重复造轮子(Obsidian 插件设置说明汉化)