Contato:
A interface ApplicationContext herda de BeanFactory e tem mais funções;
A diferença:
O padrão BeanFactory é carregamento lento (o objeto é criado quando é adquirido). O
padrão ApplicationContext é carregado com urgência (o objeto é criado quando o contêiner é criado), mas o carregamento urgente é alterado para carregamento lento,
método 1: configurar um carregamento lento de bean único No arquivo de configuração do spring, adicione lazy-init = "true" às propriedades do bean.
<bean id="tomato" class="cn.it.show.Tomato" lazy-init="true"></bean>
Método 2: Configure todos os beans para serem carregados com lazy, adicione default-lazy-init = "true" após a declaração e as restrições do arquivo de configuração do spring;
<?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">
Objetos de gerenciamento de primavera
- Pré-requisitos: Não deve haver estrutura de parâmetros.
- Gerenciar beans externos: gerenciar nossas próprias classes
<!-- 管理外部类 -->
<bean id="tomato" class="cn.it.show.Tomato" lazy-init="true"></bean>
- Gerenciar Beans internos: gerenciar classes escritas por outros, a API vem com classe
Por exemplo: obter a hora atual do sistema - "maneira antiga: new Date ()
agora Gerenciamento de primavera:
<!-- 管理内部类 -->
<bean id="data" class="java.util.Date"></bean>
Você pode obter a hora atual diretamente no método de teste
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