0
Я хотел использовать несколько источников данных (оракул и sqlserver) в приложении. в соответствии с этим я выполнил конфигурацию. код, который я wriiten это какПочему SpringBoot не создает bean-компонент для многоуровневых источников данных?
файл конфигурации
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfiguration {
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource firstDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "spring.secondDasource")
public DataSource secondDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(firstDataSource());
}
@Bean
public JdbcTemplate sJdbcTemplate() {
return new JdbcTemplate(secondDataSource());
}
}
application.yml файл
#First
spring.datasource.driverClassName: oracle.jdbc.driver.OracleDriver
spring.datasource.url: someJdbcUrl
spring.datasource.username: username
spring.datasource.password: password
#Second
spring.secondDatasource.driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.secondDatasource.url: some sqlUrl
spring.secondDatasource.username: username
spring.secondDatasource.password: password
Основной класс
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class MainApp {
public static void main(String[] args) throws Exception {
SpringApplication.run(MainApp.class, args);
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(MainApp.class, args);
configurableApplicationContext.start();
String[] beanNames = configurableApplicationContext.getBeanDefinitionNames();
System.out.println("--------------------------------------");
System.out.println();
for (String beanName : beanNames) {
System.out
.println(beanName + " : " + configurableApplicationContext.getBean(beanName).getClass().toString());
}
System.out.println("--------------------------------------");
System.out.println();
}
}
Gradle зависимостями
compile group: 'sqljdbc4', name: 'sqljdbc4', version: '4.0'
compile(group: 'ojdbc14', name: 'ojdbc14', version: '10.2.0.5')
, когда я пытаюсь использовать второй источник данных, он бросает исключение, как его боб не был создан
, что я здесь отсутствую ??
@Bean @ConfigurationProperties (префикс = "spring.secoatasource") Возможно, вы имели в виду spring.secondDatasource –
Это все еще не правильно. Следуйте за документом здесь http://docs.spring.io/spring-boot/docs/1.2.0.BUILD-SNAPSHOT/reference/htmlsingle/#howto-two-datasources –
@SouravGanguly Я использую то же самое, что упоминалось весной док. я что-то упускаю?? – sumit