首页 头条 财经 产业 跨境 时尚 物流 直播 优品 English
首页 / 网尚家电 / 正文

Filesystemxmlapplicationcontext以声明式操作容器

来源:
编辑:电经淘讯
时间:2023-09-01

Spring有两个核心接口:BeanFactory 和 ApplicationContext,其中ApplicationContext是BeanFactory 的子接口。它们代表Spring容器,Spring容器是生成Bean实例的工厂,并管理容器中的Bean,Bean是Spring管理的基本单位,在基于spring的javaEE应用中,所有的组件都被当成bean来处理。很多时候,ApplicationContext 都是以声明式方式操作容器,无须手动创建。例如:可利用像ContextLoader 的支持类,在 Web 应用启动时自动创建 ApplicationContext。当然,也可以采用编程方式创建 ApplicationContext。


      Spring中ApplicationContext的三种不同实现:
       FileSystemXmlApplicationContext:这种方式是通过程序在初始化的时候,导入Bean配置文件,然后得到Bean实例。ApplicationContext ctx = newFileSystemXmlApplicationContext("spring-config.xml"); //当前路径加载单个配置文件String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};ApplicationContext ctx = new FileSystemXmlApplicationContext(locations ); //同时加载多个配置文件ApplicationContext ctx = new FileSystemXmlApplicationContext("D:/project/bean.xml");//根据具体路径加载文件。对于FileSystemXmlApplicationContext:
       默认表示的是两种:
       1.没有盘符的是项目工作路径,即项目的根目录;
       2.有盘符表示的是文件绝对路径.
       注意:如果要使用classpath路径,需要前缀classpath:
       ClassPathXmlApplicationContext,ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//加载单个配置文件,String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};ApplicationContext ctx = newClassPathXmlApplication(locations);//同时加载多个配置文件。或者用通配符同时加载多个配置文件:ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/*.xml");
       注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的。ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的区别如下:
       1、classpath:前缀是不需要的,默认就是指项目的classpath路径下面;
       2、如果要使用绝对路径,需要加上file:前缀表示这是绝对路径;
       3、XmlWebApplicationContext:在B/S系统中,通常在web.xml初始化bean的配置文件,然后由WebAppliCationContextUtil得到ApplicationContext,ServletContext servletContext =request.getSession().getServletContext();ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

头条聚焦更多
经济视界更多

智慧树母公司再战IPO:创始人之子突击

    近段时间,碳酸锂企业天华新能公告称,孙...[详细]

高通总算打赢了芯片诉讼 ,被判未违

    据彭博社报道,当地时间周五,高通公司在...[详细]

热点财经更多
  • CopyRight @ 2013-2024 Reserved CN电商经济网版权所有所涉内容免责声明查阅