2016-06-15 4 views
0

SpringBootアプリケーションでは、2つのデータソースをサポートする必要があります。 DatabaseConfigクラスでローカル環境で通常のデータソースをサポートできますが、他の環境ではJNDIデータソースとして動作させることは可能ですか?他のデータソースは、常にすべてのenvの通常のデータソースになります。複数のSpring起動データソースがEnvに基づく標準およびJNDI

@Configuration 
public class DatabaseConfig { 

    @Primary 
    @ConfigurationProperties(prefix = "spring.firstDatasource") 
    @Bean(name = "firstDatasource") 
    public DataSource contentDatasource() { 
      return DataSourceBuilder.create().build(); 
    } 

    @ConfigurationProperties(prefix = "spring.secondDatasource") 
    @Bean(name = "secondDatasource") 
    public DataSource secondDatasource() { 
      return DataSourceBuilder.create().build(); 
    } 

    @Bean(name = "jdbcFirst") 
    public JdbcTemplate firstJdbcTemplate(DataSource firstDatasource) { 
      return new JdbcTemplate(firstDatasource()); 
    } 

    @Bean(name = "jdbcSecond") 
    public JdbcTemplate secondJdbcTemplate(DataSource secondDatasource) { 
      return new JdbcTemplate(secondDatasource()); 
    } 
} 

ありがとうございます!

答えて

1

@Profile注釈をご覧ください。 @Bean@Component@Serviceなどの子供の注釈の場合もあります)または@Configurationと組み合わせて使用​​できます。

this Spring docs sectionを参照して、その使用方法を調べてください。

Springブートアプリケーションのプロファイルを定義する方法を調べるには、this Spring Boot docs sectionをご覧ください。コマンドラインによるプロファイルの定義は最適なオプションとみなされます。

関連する問題