:
@Configuration
public class ApplicationContext {
@Bean(name = "sshTunnel")
public SSHTunnel getSSHTunnel() {
return new SSHTunnel();
}
@Bean(name = "dataSource" )
public DataSource getDataSource() {
getSHTunnel();
DriverManagerDataSource dataSource = new DriverManagerDataSource();
return dataSource;
}
@Bean
public Query getQuery() {
return new Query(getSSHTunnel(), getDataSource());
}
}
( ). , , Spring . , (, getSSHTunnel()) , bean (.. ).
, @Autowired - . .
, @DependsOn . , ( Spring). , .
:
Spring, . Java
. , @Configuration , Spring bean , , . :
@Configuration
public class TestDependencies {
@Bean(name="dataSource")
public DataSource getDataSource() {
return new MockDataSource();
}
}
...
ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationContext.class, TestDependencies.class);
context.getBean("dataSource");
, getDataSource() @Autowired context.getBean(). - AFAIK ( @Bean, ), .