Spring 学习笔记(三)——IoC容器(ApplicationContext)
时间:2022-06-09
本文章向大家介绍Spring 学习笔记(三)——IoC容器(ApplicationContext),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ApplicationContext
ApplicationContext接口使BeanFactory的子接口,代表一个应用的上下文环境。
ApplicationContext扩展了很多使用的功能,如
- Bean的生命周期管理
- 框架事件体系
- 国际化支持等
同时,ApplicationContext接口还通过继承其他接口扩展了BeanFactory的功能:
- MessageSource———为应用提供国际化访问功能
- ResourceLoader———提供资源(如URL和文件系统)的访问支持
- ApplicationEventPublisher———引入事件机制,包括启动事件、关闭事件等,让容器在上下文中提供了对应用事件的支持。
ApplicationContext的主要实现类有
- ClassPathXmlApplicationContext(从类路径加载IoC配置文件);
- FileSystemXmlApplicationContext(从文件系统加载IoC配置文件)。
package Demo02;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Created by Richard on 2017/7/24.
*/
public class ApplicationContextDemo {
public static void main(String[] args) {
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("Demo02/Bean.xml");
Book book= (Book) context.getBean("book");
System.out.println(book.getName());
System.out.println(book.getAuthor());
System.out.println(book.getPublisher());
System.out.println(book.getPrice());
context.close();
}
}
由于ClassPathXmlApplicationContext类实现了java.io.Closeable接口,因此需要在使用完毕后调用close()方法关闭。
ApplicationContext && BeanFactory 初始化区别
BeanFactory在初始化容器使,并未实例化Bean,直到第一次访问某个Bean时才实例化目标Bean。
ApplicationContext在初始化上下文时就实例化所有单实例的Bean。
Bean的生命周期
- HDUOJ---2642Stars(二维树状数组)
- HDUOJ -----Color the ball
- poj-----Ultra-QuickSort(离散化+树状数组)
- HDUOJ---1241Oil Deposits(dfs)
- HDUOJ------2398Savings Account
- HDUOJ-----2399GPA
- HDUOJ----旋转的二进制
- HDUOJ---3743Frosh Week(BIT+离散化)
- Node.js新手必须知道的4个JavaScript概念
- HUDOJ-----1394Minimum Inversion Number
- 提升 Node.js 应用性能的 5 个技巧
- HDUOJ-----1166敌兵布阵
- HDUOJ------2492Ping pong
- HDUOJ----2489 Minimal Ratio Tree
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Core + Vue 后台管理基础框架3——后端授权
- Core + Vue 后台管理基础框架4——前端授权
- ent orm笔记4---Code Generation
- Core + Vue 后台管理基础框架5——系统审计
- Core + Vue 后台管理基础框架6——业务日志
- Lucene笔记一
- android9.0中SharedPreferences源码分析(一)
- Core + Vue 后台管理基础框架8——Swagger文档
- .net core国际化
- Cache-Aside Pattern
- Lucene笔记二
- Spring的事务传播行为
- Kubernetes架构简介
- 基于ReadWriteLock读写锁实现的缓存
- 了解Solr