将Spring applicationContext.xml放在非Web应用程序中的位置?

时间:2012-05-13 13:36:26

标签: java spring

我正在创建一个使用Spring bean的应用程序,我需要从ApplicationContext初始化xml。因为它不是服务器应用程序,所以它没有WEB-INF文件夹。所以,我应该放置xml文件?

3 个答案:

答案 0 :(得分:3)

这个主题的spring文档起初有点压倒性。应用程序上下文配置的spring文档中的一个方便的起点是here

file system xml application context可能是最容易开始的。所以:

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

如果您的应用程序类路径中有xml配置,请使用ClassPathApplicationContext。在此示例中,它可能是项目目录src / config / springconfig.xml下的springconfig.xml。

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

如果您不确定在构建应用程序后springconfig.xml的结束位置,可以使用以下命令列出jar的内容:

jar -tvf myapp.jar

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

提出了一个相关问题here

答案 1 :(得分:3)

使用ClassPathXmlApplicationContext

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

或考虑迁移到@Configuration

ApplicationContext ctx = 
  new AnnotationConfigApplicationContext(AppConfig.class);

其中AppConfig使用@Configuration注释,不需要XML。

答案 2 :(得分:1)

请查看此示例Spring Setter Injection

如果XML在应用程序类路径中,那么就像这样使用

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

否则,如果XML在文件系统中,则使用

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