我应该把我的 XML Bean 放在 Spring Boot 应用程序中的什么位置?

我要回到春天(目前是v4)。现在使用其他注释都很棒,但是所有的文档似乎都忘记提到我如何在XML中定义其他bean!@SpringBootApplication

例如,我想创建一个“SFTP会话工厂”,定义如下:http://docs.spring.io/spring-integration/reference/html/sftp.html

有一个很好的XML来定义bean,但是我把它放在哪里,我该如何链接它?以前我做了一个:

ApplicationContext context = new ClassPathXmlApplicationContext(
                "classpath:applicationContext.xml");

以指定文件名和位置,但现在我正在尝试使用:

ApplicationContext ctx = SpringApplication.run(Application.class);

我应该把 XML 文件放在哪里?有没有一个神奇的春天的名字来称呼它?


答案 1

只要您从基类开始(听起来可能像是 ),您就可以使用@ImportResource注释来包含 XML 配置文件。@Configuration@SpringBootApplication

@SpringBootApplication
@ImportResource("classpath:spring-sftp-config.xml")
public class SpringConfiguration {
  //
}

答案 2

您还可以将 XML 配置转换为 Java 配置。在你的情况下,它看起来像这样:

@Bean
public DefaultSftpSessionFactory sftpSessionFactory() {
    DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory();
    factory.setHost("localhost");
    factory.setPrivateKey(new ClassPathResource("classpath:META-INF/keys/sftpTest"));
    factory.setPrivateKeyPassphrase("springIntegration");
    factory.setPort(22);
    factory.setUser("kermit");
    return factory;
}

您可以将此方法放在带有批注的类中。@SpringBootApplication


推荐