Spring加载配置文件的几种方法(org.springframework.beans.factory.BeanDefinitionStoreException)

一:Spring中的几种容器都支持使用xml装配bean,包括:
XmlBeanFactory ,
ClassPathXmlApplicationContext ,
FileSystemXmlApplicationContext ,
XmlWebApplicationContext

加载这些容器的配置文件的xml有一下几种常见的方法:

1:引用资源用XmlBeanFactory(不能实现多个文件相互引用)

Resource resource = new ClassPathResource("appcontext.xml");
BeanFactory factory = new XmlBeanFactory(resource);

从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean!

2:引用应用上下文用ClassPathXmlApplicationContext

ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
ApplicationContext factory=new ClassPathXmlApplicationContext("conf/userConfig.xml"); // src/conf 目录下的 
ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");
3:用文件系统的路径引用应用上下文用FileSystemXmlApplicationContext

ApplicationContext factory=new FileSystemXmlApplicationContext("src/applicationContext.xml"); 
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");

注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中

String[] configs = {"applicationContext.xml","user_spring.xml"};
ApplicationContext ctx = new ClassPathXmlApplicationContext(configs);
//ApplicationContext ctx=new FileSystemXmlApplicationContext(configs);

AbstractDao myUserDAO = (AbstractDao) ctx.getBean("userDao");

4:Web工程定制的加载方法 XmlWebApplicationContext

ServletContext servletContext = request.getSession().getServletContext(); 
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );

时间: 2024-08-09 07:38:01

Spring加载配置文件的几种方法(org.springframework.beans.factory.BeanDefinitionStoreException)的相关文章

spring加载配置文件的两种方式

一 . <bean id="jdbcProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">       <property name="locations">           <list>               <value>classpath:jdbc.prop

Spring加载context的几种方法

Spring中的context管理 Spring中IOC容器的初始化: ApplicationContext即是保存bean对象的容器,故容器本身的初始化,就是通过一系列的配置,将ApplicationContext进行初始化. 而配置ApplicationContext大方向上分为了3中: 一.使用classpath 二.使用本地文件系统中某个文件地址 三.(SpringMVC)web应用中用servlet类或者Listener类来初始化IOC容器 而具体下来可以分为12种方式: 1 Clas

JavaScript实现判断图片是否加载完成的3种方法整理

JavaScript实现判断图片是否加载完成的3种方法整理 有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果.本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明. onload方法 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码.如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将

spring加载配置文件

spring加载配置文件 1.把applicationContext.xml直接放在WEB-INF/classes下,spring会采用默认的加载方式2.采用在web.xml中配置ContextLoaderListenera或ContextLoaderServlet指定加载路径方式.3 通过ClassPathXmlApplicationContext或XmlWebApplicationContext代码动态加载!

js 动态加载事件的几种方法总结

本篇文章主要是对js 动态加载事件的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 有些时候需要动态加载javascript事件的一些方法往往我们需要在 JS 中动态添加事件,这就涉及到浏览器兼容性问题了,以下谈及的几种方法,我们也常常混合使用. 方法一.setAttributevar obj = document.getElementById("obj");obj.setAttribute("onclick", "javasc

加载 AssetBundle 的四种方法

[加载 AssetBundle 的四种方法] 1.AssetBundle.LoadFromMemoryAsync(byte[] binary, uint crc = 0); 返回AssetBundleCreateRequest.Use assetBundle property to get an AssetBundle once it is loaded. Compared to LoadFromMemory, this version will perform AssetBundle deco

spring加载配置文件无法解析占位符问题:Could not resolve placeholder &#39;from&#39; in string value &quot;${from}&quot;

Could not resolve placeholder 'from' in string value "${from}" 解决: 在spring的xml配置文件中当有多个*.properties文件需要加载时, 应当集中在一个xml文件中加载,建议在主xml文件中加载,即(applicationContext.xml)中加载, 这样就不需要关注 子xml文件 与 *.properties 加载顺序问题 加载多个*.properties文件,以','隔开 <context:pr

(待解答)Spring报错:Exception in thread &quot;main&quot; org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named &#39;car&#39; is defined

新建了一个Spring工程,有2个类:HelloWorld.Car.在Main.java文件里获取类时,发现只能获取到HelloWorld类,不能获取到Car类. HelloWorld.java: 1 package com.tt.spring.beans; 2 3 public class HelloWorld { 4 5 private String name; 6 7 public void setName(String name) { 8 System.out.println("hell

Java加载资源文件几种方法

from: http://andyzhu.blog.51cto.com/4386758/775836/ import java.net.URL; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestMain { public static void main