Where do I put my XML beans in a Spring Boot application?

后端 未结 3 802
小鲜肉
小鲜肉 2020-12-23 22:47

I\'m getting back into Spring (currently v4). It\'s all wonderful now with @SpringBootApplication and the other annotations but all the documentation seems to f

相关标签:
3条回答
  • 2020-12-23 23:23

    As long as you're starting with a base @Configuration class to begin with, which it maybe sounds like you are with @SpringBootApplication, you can use the @ImportResource annotation to include an XML configuration file as well.

    @SpringBootApplication
    @ImportResource("classpath:spring-sftp-config.xml")
    public class SpringConfiguration {
      //
    }
    
    0 讨论(0)
  • 2020-12-23 23:39

    You also can translate the XML config to a Java config. In your case it would look like:

    @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;
    }
    

    You can put this method in the class with the @SpringBootApplication annotation.

    0 讨论(0)
  • 2020-12-23 23:41

    Spring boot ideal concept is avoid xml file. but if you want to keep xml bean, you can just add @ImportResource("classPath:beanFileName.xml").

    I would recommend remove the spring-sftp-config.xml file. And, convert this file to spring annotation based bean. So, whatever class has been created as bean. Just write @Service or @Component annotation before class name. for example:

    XML based:

    <bean ID="id name" class="com.example.Employee">
    

    Annotation:

    @Service or @Component
    class Employee{
    }
    

    And, add @ComponentScan("Give the package name"). This is the best approach.

    0 讨论(0)
提交回复
热议问题