spring加载ApplicationContext.xml的四种方式
spring加载ApplicationContext.xml的四种方式
spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean,包括:
1 2 3 4 | XmlBeanFactory , ClassPathXmlApplicationContext , FileSystemXmlApplicationContext , XmlWebApplicationContext |
一:XmlBeanFactory 引用资源
1 2 | Resource resource = new ClassPathResource( "appcontext.xml" ); BeanFactory factory = new XmlBeanFactory(resource); |
二:ClassPathXmlApplicationContext 编译路径
1 2 3 4 5 6 7 8 9 10 11 | ApplicationContext ac = new ClassPathXmlApplicationContext( "applicationContext.xml" ); ApplicationContext ac = new ClassPathXmlApplicationContext( new String[]{ "applicationContext.xml" , "dao.xml" }); ApplicationContext ac = new ClassPathXmlApplicationContext( "classpath:/*.xml" ); ApplicationContext factory= new ClassPathXmlApplicationContext( "classpath:appcontext.xml" ); ApplicationContext factory= new ClassPathXmlApplicationContext( "appcontext.xml" ); // src目录下的 ApplicationContext factory= new ClassPathXmlApplicationContext( "conf/appcontext.xml" ); // src/conf 目录下的 ApplicationContext factory= new ClassPathXmlApplicationContext( "file:G:/Test/src/appcontext.xml" ); RegisterDAO registerDAO = (RegisterDAO)ac.getBean( "RegisterDAO" ); |
三 : 用文件系统的路径
1 2 3 4 5 | ApplicationContext factory= new FileSystemXmlApplicationContext( "src/appcontext.xml" ); //使用了 classpath: 前缀,作为标志, 这样,FileSystemXmlApplicationContext 也能够读入classpath下的相对路径 ApplicationContext factory= new FileSystemXmlApplicationContext( "classpath:appcontext.xml" ); ApplicationContext factory= new FileSystemXmlApplicationContext( "file:G:/Test/src/appcontext.xml" ); ApplicationContext factory= new FileSystemXmlApplicationContext( "G:/Test/src/appcontext.xml" ); |
四: XmlWebApplicationContext 是专为Web工程定制的。
ServletContext servletContext = request.getSession().getServletContext(); ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );
classpath:前缀是不需要的,默认就是指项目的classpath路径下面;如果要使用绝对路径,需要加上file:前缀表示这是绝对路径;
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2018-08-20 Redis内存回收:LRU算法
2018-08-20 Redis Sentinel实现的机制与原理详解
2018-08-20 深入Redis漏斗限流
2018-08-20 java 服务接口API限流 Rate Limit
2018-08-20 分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket
2018-08-20 将bloomfilter(布隆过滤器)集成到scrapy-redis中
2018-08-20 Redis Cluster 分区实现原理