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