org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.enableautoconfiguration; org.springframework.boot.builder.springApplicationBuilder; org.springframework.boot.context.web.springbootservletinitializer; org.springframework.context.annotation.componentscan; @componentscan @enableautoconfiguration // @enablejparepositories (basepackages = "com.sonychina.backend.backend.repository") 공개 클래스 응용 프로그램 확장 SpringBootservleTinitializer {public static void main (string [] args) {springApplication app = new springApplication (applact.class); app.run (args); //springApplication.run (application.class, args); } @override Protected SpringApplicationBuilder Configure (SpringApplicationBuilder Application) {return application.sources (application.class); }}java.util.map import; javax.sql.datasource import; org.springframework.beans.factory.annotation.autowired; org.springframework.boot.autoconfigure.jdbc.datasourcebuilder; org.springframework.boot.autoconfigure.orm.jpa.entitymanagerfactorybuilder; org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; org.springframework.boot.context.properties.configurationProperties; import org.springframework.context.annotation.bean; org.springframework.context.annotation.configuration; import org.springframework.context.annotation.primary; org.springframework.data.jpa.repository.config.enablejparepositories; import org.springframework.orm.jpa.localcontainerentityManagerFactoryBean; import com.test.entity.statistic.sysuser; com.test.repository.system.systemRepository import; @configuration @enablejparepositories (entityManagerFactoryRef = "entityManagerFactoryPrimary", BasePackAgeClasses = {SystemRepository.class}) 공개 클래스 GlobalDataconFiguration {// @autowired // private dbconfig dbconfig; @autowired 개인 jpaproperties jpaproperties; @Bean(name="primaryDataSource") @Primary @ConfigurationProperties(prefix="datasource.primary") public DataSource primaryDataSource() { System.out.println("-------------------- primaryDataSource init ---------------------"); return dataSourceBuilder.create (). build (); } @Bean (name = "sec // dataSourceBuilder factory = dataSourceBuilder // .create (dbconfig.class.getClassLoader ()) // .DriverClassName (dbconfig.getDriver ()) // .url (dbconfig.geturl ()) // .username (dbconfig./). .Password (dbconfig.getPassword ()); // return factory.build (); return dataSourceBuilder.create (). build (); } // @bean (이름 = "EntityManagerPrimary") // @primary // public entityManager entityManager (entityManagerFactoryBuilder Builder) {// return customerentityManagerFactory (builder) .getObject (). CreateEntityManager (); //} @Bean (이름 = "EntityManagerFactoryPrimary") @Primary Public ContainerEntityManagerFactoryBean CustomerManagerFactory (EntityManagerFactoryBuilder Builder) {return builder.datasource (PricitDatasource ()). .packages (sysuser.class) .persistenceUnit ( "System") .Build (); } private map <string, String> getVendorProperties (DataSource DataSource) {return jpaproperties.gethibernateProperties (DataSource); }}java.util.map import; javax.sql.datasource import; org.springframework.beans.factory.annotation.autowired; org.springframework.beans.factory.annotation.qualifier import; org.springframework.boot.autoconfigure.orm.jpa.entitymanagerfactorybuilder; org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; import org.springframework.context.annotation.bean; org.springframework.context.annotation.configuration; org.springframework.data.jpa.repository.config.enablejparepositories; import org.springframework.orm.jpa.jpatransactionManager; import org.springframework.orm.jpa.localcontainerentityManagerFactoryBean; import org.springframework.transaction.platformtransactionManager; import org.springframework.transaction.annotation.enableTransactionManagement; import com.test.entity.manage.banner; import com.test.repository.manage.bannerrepository; @Configuration @EnableTransactionManagement @enablejparepositories (entityManagerFactoryRef = "entityManagerFactorySecondary", TransactionManagerRef = "TransactionManagerSecondary", BasePackAgeClasses = {bannerrepository.class}) 공개 Class SecondFBConfig {@autowired private jpapropired jPAPROPERED JPAPROPERED; @autowired@Qualifier ( "SecondaryDatasource") Private DataSource DataSource; // @Bean (이름 = "EntityManagerPrimary") // @primary // public entityManager entityManager (entityManagerFactoryBuilder Builder) {// customerEntityManagerFactory (builder) .getObject (). createEntityManager (); //} @Bean (이름 = "EntityManagerFactorySecondary")) 공개 LocalContainerEntityManagerFactoryBean CustomerManagerFactory (EntityManagerFactoryBuilder Builder) {return builder.datasource (DataSource). .PersistenceUnit ( "고객") .Build (); } private map <string, String> getVendorProperties (DataSource DataSource) {return jpaproperties.gethibernateProperties (DataSource); } @Bean (name = "transactionManagerSecondary") PlatformTransactionManager TransactionManagerSecondary (entityManagerFactoryBuilder Builder) {return new jpatransactionManager (CustomerEntityManagerFactory (builder)) .getObject ()); }}import org.springframework.data.jpa.repository.jparepository; org.springframework.data.jpa.repository.modifying import; import org.springframework.data.jpa.repository.query; import com.test.entity.manage.banner; 공개 인터페이스 배너 고리는 jparepository <banner, long> {@Modifying @Query ( "업데이트 배너 m 세트 m.name =? 1 here m.id =? 2") public void update (String Bannername, long id); } 1.5. : : 对 @Primary 修饰的 LocalContainerEntityManagerFactoryBean 可以不用指定 TransactionManager, Spring 上下文自动使用默认的 jpatransactionManager, 但是对于第二个或第三个等等必须指定 TransactionManager 。可以参考 SpringBoot 官方文档中的相关章节。
总结
Spring Boot Springjpa 支持多个数据源的实例代码 支持多个数据源的实例代码, 希望对大家有所帮助, 如果大家有任何疑问请给我留言, 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!