import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.enableAutoconfiguration; import org.springframework.boot.builder.springApplicationBuilder; import org.springframework.boot.context.web.springbootServletinitializer; import org.springframework.context.annotation.comPonentscan; @Componentscan @EnableAutoConfiguration // @enableJparePositories (Basepackages = "com.sonychina.backend.repository") Anwendung erweitert SpringbootServletializer {public static void Main (String [] args) {SpringApplication App = New SpringApplication.classe.classe); app.run (args); //SpringApplication.run(Application.class, args); } @Override Protected SpringApplicationBuilder configure (SpringApplicationBuilder -Anwendung) {return application.sources (application.class); }}import Java.util.map; importieren javax.sql.datasource; import org.springframework.beans.factory.annotation.autowired; import org.springframework.boot.autoconfigure.jdbc.datasourcebuilder; import org.springframework.boot.autoconfigure.orm.jpa.entityManagerFactoryBuilder; import org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; 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.data.jpa.repository.config.enablejparepositories; import org.springframework.orm.jpa.localContainerEntityManagerFactoryBean; import com.test.entity.statistic.sysuser; com.test.repository.system.SystemRepository importieren; @Configuration @EnableJParePoSories (EntityManagerFactoryRef = "EntityManagerFactoryPrimary", BasepackageClasseses = {SystemRepository.class}) öffentliche Klasse GLUBLEDATACONFIGRIGUNG {// @AUTOWIRD // private dbconfig dbconfig; @Autowired Private Jpaproperties jpaproperties; @Bean (name = "primaryDataSource") @Primary @ConfigurationProperties (prefix = "dataSource.primary") public dataSource primaryDataSource () {System.out.println ("---------------------------------------------------"); return DataSourcebuilder.Create (). Build (); } @Bean (name = "secondaryDataSource") @ConfigurationProperties (prefix = "dataSource.secondary") public DataSource secondaryDataSource () {System.out.println ("-------------------------------------------------------------"); // DataSourceBuilder factory = DataSourceBuilder // .create(DBConfig.class.getClassLoader()) // .driverClassName(dbConfig.getDriver()) // .url(dbConfig.getUrl()) // .username(dbConfig.getUser()) // .Password (dbconfig.getPassword ()); // return factory.build (); return DataSourcebuilder.Create (). Build (); } // @bean (name = "entityManagerPrimary") // @Primary // public entityManager entityManager (EntityManagerFactoryBuilder Builder) {// CustomerEntityManagerFactory (Builder) .getObject (). CreateEntityManager (); //} @bean (name = "entityManagerFactoryPrimary") @PriMary Public localContainerEntityManagerFactoryBean CustomerEntityManagerFactory (EntityManagerFactoryBuilder Builder) {return Builder.DataSource (). .packages (sysuser.class) .PersistenceUnit ("System") .build (); } private map <String, String> GetVendorProperties (DataSource -DataSource) {return jpaproperties.gethiberNateProperties (DataSource); }}import Java.util.map; importieren javax.sql.datasource; import org.springframework.beans.factory.annotation.autowired; import org.springframework.beans.factory.annotation.qualifier; import org.springframework.boot.autoconfigure.orm.jpa.entityManagerFactoryBuilder; import org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import 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; com.test.repository.manage.Bannerrepository; @Configuration @EnableTransactionManagement @EnableJpaRepositories(entityManagerFactoryRef="entityManagerFactorySecondary", transactionManagerRef="transactionManagerSecondary", basePackageClasses= {BannerRepository.class}) public class SecondEMFBConfig { @Autowired private JpaProperties jpaproperties; @Autowired@qualifier ("secondaryDataSource") private DataSource -DataSource; // @bean (name = "entityManagerPrimary") // @primary // public entityManager entityManager (EntityManagerFactoryBuilder Builder) {// CustomerEntityManagerFactory (Builder) .GetObject (). CreateStityManager (); //} @Bean (name = "EntityManagerFactorySecondary") öffentlicher LokalcontainerEntityManagerFactoryBean CustomerEntityManagerFactory (EntityManagerFactoryBuilder Builder) {return Builder.Datasource (dataSource). .PersistenceUnit ("Kunden") .build (); } private map <String, String> GetVendorProperties (DataSource -DataSource) {return jpaproperties.gethiberNateProperties (DataSource); } @Bean (name = "transactionManAGersecondary") plattformTransactionManager transactionManagersecondary (EntityManagerFactoryBuilder Builder) {neu jpatransactionManager zurückgeben (CustomerEntityManagerFactory (Builder) .GetObject ()); }}import org.springframework.data.jpa.repository.jparepository; import org.springframework.data.jpa.repository.modifikation; import org.springframework.data.jpa.repository.query; import com.test.entity.manage.Banner; Die öffentliche Schnittstelle BannerRepository erweitert JParepository <Banner, Long> {@modifikation @Query ("Banner aktualisieren M.Name =? 1 Wo m.id =? 2") öffentliches Void -Update (String BannerName, Long ID); } 1,5.
总结
以上所述是小编给大家介绍的 Spring Boot Springjpa 支持多个数据源的实例代码 , 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持! 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!