Spring基础:BeanFactory和ApplicationContext区别和联系和spring管理对象

联系:

ApplicationContext接口继承自BeanFactory,拥有更多的功能;

区别:

BeanFactory默认是懒加载(是在获取时才去创建对象的)
ApplicationContext默认是迫切加载(创建容器的时候就创建了对象),但是把迫切加载改变成懒加载,
方式一:配置单个bean懒加载在spring配置文件中把bean属性中加入lazy-init=“true”。

<bean id="tomato" class="cn.it.show.Tomato" lazy-init="true"></bean>

方式二:配置所有bean懒加载,在spring配置文件的申明和约束后面加入default-lazy-init=“true”;

<?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" default-lazy-init="true">

Spring管理对象

  • 前提条件:必须有无参构造。
  • 管理外部Bean:管理我们自己写的类
	<!-- 管理外部类 -->
	<bean id="tomato" class="cn.it.show.Tomato" lazy-init="true"></bean>
  • 管理内部Bean:管理别人写好的,API自带的类
    例如:获取当前系统时间 -》以前的方式:new Date()
    现在Spring管理:
<!-- 管理内部类 -->
	<bean id="data" class="java.util.Date"></bean>

在测试方法中就可以直接获取当前时间了

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		Date bean = ac.getBean("data",java.util.Date.class);
		System.out.println(bean);//Thu Apr 16 15:25:41 CST 2020
发布了23 篇原创文章 · 获赞 1 · 访问量 165

猜你喜欢

转载自blog.csdn.net/weixin_45528650/article/details/105557669