2012-05-13 55 views
1

我正在创建一个使用Spring beans的应用程序,我需要从xml初始化ApplicationContext。由于它不是服务器应用程序,因此它没有WEB-INF文件夹。那么,我应该在哪里放置xml文件?Spring applicationContext.xml

回答

1

检查这个例子Spring Setter Injection

如果XML是在应用程序类路径,然后使用类似这样的

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 

否则,如果XML是在文件系统,然后使用

 ApplicationContext context = new FileSystemXmlApplicationContext("beans.xml"); 
3

弹簧首先,这个主题的文档有点难以理解。在应用程序上下文配置的spring文档中,方便的起点是here

A file system xml application context可能是最简单的开始。所以:

ApplicationContext appCtx = 
    new FileSystemXmlApplicationContext("/path/to/springconfig.xml"); 

使用ClassPathApplicationContext,如果你在你的应用程序类路径中的XML配置。在这个例子中,它可能是项目目录src/config/springconfig.xml下的springconfig.xml。

ApplicationContext appCtx = 
    new ClassPathXmlApplicationContext("config/springconfig.xml"); 

如果您不确定您的springconfig.xml最终您已经构建了应用程序后,您可以使用下面的命令列出JAR的内容:

jar -tvf myapp.jar 

对于默认蚀java项目,project-home/bin目录是类路径的开始。

一个相关的问题被问here

+0

我做了同样的事情,并将应用程序上下文xml放在src目录中。这是行不通的。我正在开发Eclipse RCP应用程序。 – itun

+0

更新为包含一些类路径调试想法。我使用src/config/springconfig.xml对Eclipse进行了测试,它适用于我。 – pd40

3

使用ClassPathXmlApplicationContext

ApplicationContext ctx = 
    new ClassPathXmlApplicationContext("applicationContext.xml"); 

或者考虑迁移到@Configuration:需要

ApplicationContext ctx = 
    new AnnotationConfigApplicationContext(AppConfig.class); 

其中AppConfig标注有@Configuration,没有XML。

+0

我做了同样的事情,并将应用程序上下文xml放在src目录中。它不起作用 – itun

+0

@itun:请解释“*不起作用*”。如果你使用[tag:maven],'applicationContext.xml'应该在'src/main/resources'中。如果没有 - 位于CLASSPATH的根目录中。 –

+0

我正在使用Eclipse RCP应用程序 – itun

相关问题