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

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


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 {  //}


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

@Beanpublic 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.


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 @Componentclass Employee{}

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