Spring 容器負責創建對象、裝配依賴、管理完整生命周期。核心接口:BeanFactory(基礎)、ApplicationContext(企業級增強)。
org.springframework.beans.factory.BeanFactory。XmlBeanFactory(已過時,教學用)。XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("Beans.xml"));
HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");
obj.getMessage();
ClassPathXmlApplicationContext:類路徑 XML。FileSystemXmlApplicationContext:文件系統絕對路徑 XML。AnnotationConfigApplicationContext:註解配置類。WebApplicationContext:Web 環境專用。ApplicationContext ctx = new FileSystemXmlApplicationContext("C:/workspace/HelloSpring/src/Beans.xml");
HelloWorld obj = (HelloWorld) ctx.getBean("helloWorld");
| 特性 | BeanFactory | ApplicationContext |
|---|---|---|
| 初始化策略 | 按需延遲 | 啟動時預實例化單例 |
| 國際化 | 不支持 | 內建 MessageSource |
| 事件機制 | 無 | ApplicationEventPublisher |
| 資源加載 | 基本 | ResourcePatternResolver |
| AOP 集成 | 手動 | 自動代理 |
| 適用場景 | 資源極度受限 | 絕大多數企業應用 |
三種來源:XML、註解、Java Config。容器讀取元數據 → 實例化 → 注入依賴 → 生命周期回調 → 可用 Bean。
ApplicationContext(或 Spring Boot 自動配置)。BeanFactory。@Configuration + @Bean) 或註解 (@Component),XML 維護舊項目。理解兩大容器定位與差異,是掌握 Spring IOC 體系、排查啟動性能、選擇配置方式的關鍵。