2016-08-11 188 views
0

我想模仿它的這個例子https://github.com/spring-projects/spring-data-examples/tree/master/jpa/multiple-datasources,但他們似乎沒有使用屬性文件,這是讓我感到困惑。他們如何輸入數據庫名稱,登錄信息和url?該方法我現在有它是這樣的:如何連接到多個數據庫Spring Boot JPA?

這是我的數據庫我的一個配置文件:LM_Config.java

@Configuration 
@EnableJpaRepositories(entityManagerFactoryRef = "lmEntityManagerFactory", 
     transactionManagerRef = "lmTransactionManager") 
class LM_Config { 

    @Bean 
    PlatformTransactionManager lmTransactionManager() { 
     return new JpaTransactionManager(lmEntityManagerFactory().getObject()); 
    } 

    @Bean 
    LocalContainerEntityManagerFactoryBean lmEntityManagerFactory() { 

     HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
     vendorAdapter.setGenerateDdl(true); 

     LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); 

     factoryBean.setDataSource(lmDataSource()); 
     factoryBean.setJpaVendorAdapter(vendorAdapter); 
     factoryBean.setPackagesToScan(LM_Config.class.getPackage().getName()); 

     return factoryBean; 
    } 


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

} 

這是我的數據庫我的一個配置文件:MTS_Config.java

@Configuration 
@EnableJpaRepositories(entityManagerFactoryRef = "mtsEntityManagerFactory", 
     transactionManagerRef = "mtsTransactionManager") 
class MTS_Config { 

    @Bean 
    PlatformTransactionManager mtsTransactionManager() { 
     return new JpaTransactionManager(mtsEntityManagerFactory().getObject()); 
    } 

    @Bean 
    LocalContainerEntityManagerFactoryBean mtsEntityManagerFactory() { 

     HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
     vendorAdapter.setGenerateDdl(true); 

     LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); 

     factoryBean.setDataSource(mtsDataSource()); 
     factoryBean.setJpaVendorAdapter(vendorAdapter); 
     factoryBean.setPackagesToScan(MTS_Config.class.getPackage().getName()); 

     return factoryBean; 
    } 


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

} 

這是我的application.properties文件。感興趣的要點應該是開始於spring.datasource...spring.mtsDatasource...

hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect 
hibernate.show_sql=true 
hibernate.format_sql=true 
hibernate.default_schema=dbo 
hibernate.packagesToScan=src.repositories.LMClientRepository.java 

spring.jpa.generate-ddl=true 
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy 
spring.datasource.username=LOADdev 
spring.datasource.password=lmtdev01 
spring.datasource.url=jdbc:sqlserver://schqvsqlaod:1433;database=dbMOBClientTemp;integratedSecurity=false; 
spring.datasource.testOnBorrow=true 
spring.datasource.validationQuery=SELECT 1 
spring.jpa.database=dbMOBClientTemp 
spring.jpa.show-sql=true 
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect 
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver 
#spring.jpa.hibernate.ddl-auto=none 
#spring.jpa.hibernate.ddl-auto=none 
#spring.jpa.properties.hibernate.hbm2ddl.auto=none 

spring.mtsDatasource.username=mtsj 
spring.mtsDatasource.password=mtsjapps 
spring.mtsDatasource.url=jdbc:sqlserver://SCHQVSQLCON2\VSPD:1433;database=dbMTS;integratedSecurity=false; 
spring.mtsDatasource.testOnBorrow=true 
spring.mtsDatasource.validationQuery=SELECT 1 
+2

http://stackoverflow.com/questions/30362546/how-to-use-2-or-more-databases-with-spring參考這篇文章 – Priyamal

+0

你沒有指定你的問題是什麼,這個問題重複。回顧@Priyamal與你相關的答案。 – JudgingNotJudging

+0

https://github.com/spring-projects/spring-data-examples/tree/master/jpa/multiple-datasources – Pau

回答

0

他們不似乎可以用一個屬性文件,這是困惑我的人。他們如何輸入數據庫名稱,登錄信息和url?

這個問題的答案是,例如是使用嵌入式數據庫,所以沒有DB名,用戶名等。

爲了您的主要問題,檢查側欄的類似的問題,看起來在@Qualifier的文檔中,返回一個更具體的問題。

相關問題