当前位置:网站首页>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必须保持相同。
边栏推荐
猜你喜欢

6月“墨力原创作者计划”获奖名单公布!邀您共话国产数据库

接口設計時的一些建議

Four traversal methods of binary tree, as well as the creation of binary tree from middle order to post order, pre order to middle order, pre order to post order, and sequence [specially created for t

Summary of the mistakes in the use of qpainter in QT gobang man-machine game
![[1200. Différence absolue minimale]](/img/fa/4ffbedd8f24c75a20d3eaeaf0430ae.png)
[1200. Différence absolue minimale]

Solution of 5g unstable 5g signal often dropped in NetWare r7000 Merlin system

What if the win11 shared file cannot be opened? The solution of win11 shared file cannot be opened

Understand Alibaba cloud's secret weapon "dragon architecture" in the article "science popularization talent"

What are the functional modules of RFID warehouse management system solution

多模輸入事件分發機制詳解
随机推荐
go笔记(1)go语言介绍以及特点
Go language notes (2) some simple applications of go
Browser render page pass
Advantages of semantic tags and block level inline elements
GVM use
Flet tutorial 07 basic introduction to popupmenubutton (tutorial includes source code)
Some suggestions for interface design
插入排序,选择排序,冒泡排序
Understand Alibaba cloud's secret weapon "dragon architecture" in the article "science popularization talent"
MySQL --- 数据库查询 - 聚合函数的使用、聚合查询、分组查询
《动手学深度学习》(三) -- 卷积神经网络 CNN
Hands on deep learning (III) -- convolutional neural network CNN
Ten years' experience of byte test engineer directly hits the pain point of UI automation test
阿里云国际版CDN的优势
Automatic generation of interface automatic test cases by actual operation
测试员的算法面试题-找众数
vim异步问题
搭建一个仪式感点满的网站,并内网穿透发布到公网 1/2
async await 在map中使用
Nmap scan