Spring(四)——Spring容器加载的三种方式讲解
一、类路径获得配置文件
后面的路径放到src路径下的相对地址。
代码打包会把src打包到class路径下,类路径,就是相对src的路径。
二、文件系统路径获得配置文件
三、使用BeanFactory
四、案例代码

1 package com.gyf.test; 2 3 import com.gyf.service.IUserService; 4 5 import org.junit.Test; 6 import org.springframework.beans.factory.BeanFactory; 7 import org.springframework.beans.factory.xml.XmlBeanFactory; 8 import org.springframework.context.ApplicationContext; 9 import org.springframework.context.support.ClassPathXmlApplicationContext; 10 import org.springframework.context.support.FileSystemXmlApplicationContext; 11 import org.springframework.core.io.FileSystemResource; 12 13 public class Lesson01 { 14 @Test 15 public void test1(){ 16 //Spring容器加载有3种方式 17 //第一种:使用类路径获得配置文件,ClassPathXmlApplicationContext 18 ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 19 IUserService userService = (IUserService) context.getBean("userService"); 20 userService.add(); 21 22 //第二种方式:使用文件系统路径获得配置文件,FileSystemXmlApplicationContext 23 ApplicationContext context1 = 24 new FileSystemXmlApplicationContext("D:\\2018WorkSpaceXXY\\IDEA\\day02_Spring_20200825\\src\\beans.xml"); 25 IUserService userService1 = (IUserService) context1.getBean("userService"); 26 userService1.add(); 27 28 //第三种方式:使用BeanFactory 29 String path = "D:\\2018WorkSpaceXXY\\IDEA\\day02_Spring_20200825\\src\\beans.xml"; 30 BeanFactory factory = new XmlBeanFactory(new FileSystemResource(path)); 31 IUserService userService2 = (IUserService) factory.getBean("userService"); 32 userService2.add(); 33 } 34 }
五、Spring内部创建对象的原理
1. 解析XML文件,获取类名,id,属性。
2. 通过反射,用类名创建对象
3. 给创建的对象赋值
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步