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
 
posted @   割肉机  阅读(3294)  评论(0编辑  收藏  举报
编辑推荐:
· 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 分区实现原理
点击右上角即可分享
微信分享提示