impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.enableAutoconfiguration; impor org.springframework.boot.builder.springapplicationBuilder; impor org.springframework.boot.context.web.springbootervletInitializer; impor org.springframework.context.annotation.componentscan; @ComponentScan @EnableAutoconfiguration // @enableJparePositories (BasEpackages = "com.sonychina.backend.repository") Aplikasi kelas publik meluas springbootervletInalizer {public static void main (string [] args) {springapplication App = new springApplication (Application. Application. Application. app.run (args); //Springapplication.run(application.class, args); } @Override Protected SpringApplicationBuilder Configure (Aplikasi SpringApplicationBuilder) {return application.sources (application.class); }}impor java.util.map; impor javax.sql.datasource; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.boot.autoconfigure.jdbc.datasourceBuilder; impor org.springframework.boot.autoconfigure.orm.jpa.entityManagerFactoryBuilder; impor org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; impor org.springframework.boot.context.properties.configurationproperties; impor org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration; impor org.springframework.context.annotation.primary; impor org.springframework.data.jpa.repository.config.enableJparePositories; impor org.springframework.orm.jpa.localcontainerentityManagerFactoryBean; impor com.test.entity.statistic.sysuser; impor com.test.repository.system.systemRepository; @Configuration @EnableJparePositories (EntityManagerFactoryRef = "EntityManagerFactoryPrimary", BasePackageClasses = {SystemRepository.class}) Kelas Publik GlobalDataConfiguration {// @Autowired // private DBConfig DBConfig; @Autowired private jpaproperty jpaproperties; @Bean (name = "primaryDataSource") @primary @configurationproperties (prefix = "DataSource.Primary") Public DataSource PrimaryDataSource () {System.out.println ("----------------- PrimaryDataSource init -------------------); return DataSourceBuilder.Create (). Build (); } @Bean (name = "SecondaryDataSource") @ConfigurationProperties (prefix = "DataSource.Secondary") Public DataSource SecondaryDataSource () {System.out.println ("---------------- SecondaryDataSource init -----------------------"); // DataSourceBuilder factory = DataSourceBuilder // .create (dbconfig.class.getClassLoader ()) // .driverclassname (dbconfig.getDriver ()) // .url (dbconfig.geturl ()) // .usname (dbconfig.) // .usname (dbconfig.)/. .password (dbconfig.getPassword ()); // return factory.build (); return DataSourceBuilder.Create (). Build (); } // @bean (name = "EntityManagerPrimary") // @primary // Public EntityManager EntityManager (EntityManagerFactoryBuilder Builder) {// return customerEntityManagerFactory (builder) .getObject (). CreateentityManager (); //} @bean (name = "EntityManagerFactoryPrimary") @primary local localcontainerentityManagerFactoryBean customerEntityManagerFactory (EntityManagerFactoryBuilder Builder) {return builder.DataSource (primaryDataSource ()) (getSroperies (getVendErEcerCere (primerDataSource ()) (getRopertion (getVendErEDERECECECECECECECECECECECECECECECECECECECECECECECECORE (). .packages (sysuser.class) .persistenceunit ("System") .build (); } peta pribadi <String, String> getVendorProperties (DataSource DataSource) {return jpaprooperties.getHibernateProPerties (DataSource); }}impor java.util.map; impor javax.sql.datasource; impor org.springframework.beans.factory.annotation.Autowired; Impor org.springframework.beans.factory.annotation.qalifier; impor org.springframework.boot.autoconfigure.orm.jpa.entityManagerFactoryBuilder; impor org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; impor org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration; impor org.springframework.data.jpa.repository.config.enableJparePositories; impor org.springframework.orm.jpa.jpatransactionManager; impor org.springframework.orm.jpa.localcontainerentityManagerFactoryBean; impor org.springframework.transaction.platformTransactionManager; impor org.springframework.transaction.annotation.enabletransactionanagement; impor com.test.entity.manage.banner; impor com.test.repository.manage.BannerRepository; Konfigurasi @enabletransactionManagement @EnableJparePositories (EntityManagerFactoryRef = "EntityManagerFactorySecondary", TransactionManagerref = "TransactionManAgersecondary", Basepackageclasses = {BannerRepository.class} Klass Publik @BannerRepository.Class}) Kelas publik SecondigRlasses = {BannerRepository.class}) Second -Public Class jpaproperties; @Autowired@kualifier ("secondaryDataSource") DataSource Private DataSource; // @bean (name = "EntityManagerPrimary") // @primary // Public EntityManager EntityManager (EntityManagerFactoryBuilder Builder) {// return customerEntityManagerFactory (builder) .getObject (). CreateentityManager (); //} @bean (name = "EntityManagerFactorySecondary") public localContainerEntityManagerFactoryBean customerEntityManagerFactory (EntityManagerFactoryBuilder Builder) {return builder.datasource (dataSource) .proPerties) (getvendorproper (DataSource) .prooperties) (getvendorproper (DataSource) .prooperties) (getvendorproper) (DataSource) .prooperties) (getVendorproper) (DataSource) .proopies (getvendorproper) (getvendorpource) (getvendorpource). .PersistenceUnit ("Pelanggan") .build (); } peta pribadi <String, String> getVendorProperties (DataSource DataSource) {return jpaprooperties.getHibernateProPerties (DataSource); } @Bean (name = "TransactionManagersecondary") PlatformTransactionManager TransactionAgersecondary (EntityManagerFactoryBuilder Builder) {return JPatRansactionManager baru (customerEntityManagerFactory (builder) .getObject ()); }}impor org.springframework.data.jpa.repository.jparepository; impor org.springframework.data.jpa.repository.modifying; impor org.springframework.data.jpa.repository.query; impor com.test.entity.manage.banner; BannerRepository antarmuka publik memperluas jParepository <Banner, Long> {@modifying @Query ("Perbarui Banner M Set M.Name =? 1 di mana m.id =? 2") pembaruan public void (String bannername, Long ID); } 1.5. 注意 : 对 @Primary 修饰的 LocalContainerEntityManagerFactoryBean 可以不用指定 TransactionManager , Spring 上下文自动使用默认的 JpatransactionManager , 但是对于第二个或第三个等等必须指定 TransactionManager 。可以参考 Springboot 官方文档中的相关章节。
总结
以上所述是小编给大家介绍的 Spring Boot Springjpa 支持多个数据源的实例代码 , 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!