importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.enableautoconfiguration; importar org.springframework.boot.builder.springApplicationBuilder; importar org.springframework.boot.context.web.springbootSertletinitializer; importar org.springframework.context.annotation.comPONENTSCAN; @ComponentsCan @enableAutoconfiguration // @enableJParePositories (BasEpackages = "com.sonychina.backend.repository") public class Application estende SpringBootSetLeTInitializer {public static void main (string [] args) {springApglication App = springApplication (Application.Clatic.Clation. App.run (args); //SpringApplication.run(Application.class, args); } @Override Protected SpringApplicationBuilder Configure (aplicativo SpringApplicationBuilder) {return Application.sources (Application.class); }}importar java.util.map; importar javax.sql.datasource; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.boot.autoconfigure.jdbc.datasourcebuilder; importar org.springframework.boot.autoconfigure.orm.jpa.entityManagerFactoryBuilder; importar org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; importar org.springframework.boot.context.properties.configurationproperties; importar org.springframework.context.annotation.bean; importar org.springframework.context.annotation.configuration; importar org.springframework.context.annotation.Primary; importar org.springframework.data.jpa.repository.config.enableJparePositories; importar org.springframework.orm.jpa.localContAineRentityManagerFactoryBean; importar com.test.entity.statistic.sysuser; importar com.test.repository.system.systemrepository; @Configuration @enablejparepositories (entityManagerFactoryRef = "EntityManagerFactoryPrimary", bashEpackageclasses = {SystemRepository.class}) classe GlobalDAconfiguration {// @autowired // private dbconfig dbconfig; @AUTOWIRED PRIVADO JPAPROPERTIES JPAPROPERTIES; @Bean (name = "primardataSource") @Primary @ConfigurationProperties (prefix = "DataSource.Primary") public DataSource primárioDataSource () {System.out.println ("------------------- Primardatasource init -----------------"); Retornar DataSourceBuilder.Create (). Build (); } @Bean (name = "secundyDataSource") @ConfigurationProperties (prefix = "DataSource.Secondary") public DataSource secundyDataSource () {System.out.println ("------------------- // DataSourceBuilder Factory = DataSourceBuilder // .Create (dbconfig.class.getclassloader ()) // .driverclassName (dbconfig.getdriver ()) // .url (dbconfig.geturl ()) //usename (dbconfig.url (dbconfig.geturl ()) //username (dbconfig.url (dbconfig.gCen (dbconfig.geturl) //usename (dbconfig.url (dbconfig.geturl () //usename (dbconsig.url (dbconfig.geturl ()) //. .password (dbconfig.getpassword ()); // return factory.build (); Retornar DataSourceBuilder.Create (). Build (); } // @Bean (name = "entityManagerPrimary") // @Primary // Public EntityManager EntityManager (entityManagerFactoryBuilder Builder) {// retorna CustomerEntityManagerFactory (Builder) .getObject (). CreateEntityManager (); //} @Bean (name = "entityManagerFactoryPrimary") @Primary LocalContaiRentityManagerFactoryBean CustomerEntityManagerFactory (EntityManagerFactoryBuilder Builder) {Return Builder.DataSource (Primardatasource (). .Packages (sysuser.class) .PerSistenceUnit ("System") .Build (); } mapa privado <string, string> getVendorProperties (DataSource DataSource) {return jpaProperties.gethibernateProperties (DataSource); }}importar java.util.map; importar javax.sql.datasource; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.beans.factory.annotation.qualifier; importar org.springframework.boot.autoconfigure.orm.jpa.entityManagerFactoryBuilder; importar org.springframework.boot.autoconfigure.orm.jpa.jpaproperties; importar org.springframework.context.annotation.bean; importar org.springframework.context.annotation.configuration; importar org.springframework.data.jpa.repository.config.enableJparePositories; importar org.springframework.orm.jpa.jpatransactionManager; importar org.springframework.orm.jpa.localContAineRentityManagerFactoryBean; importar org.springframework.transaction.platformtransactionManager; importar org.springframework.transaction.annotation.enableTransactionManagement; importar com.test.entity.manage.banner; importar com.test.repository.manage.bannerRepository; @Configuration @enabletransactionManagement @enableJParePositories (EntityManagerFactoryRef = "EntityManagerFactorySecondary", transactionManagerRef = "transactionManagerSecondary", BasepackagecLasses = {BannerRepository.clout}) Classetemfbbigfg {BannerRepository.clousT}) Public ClassPoTemFBFFG {BannerReposition.clouSt}) @Autowired@qualifier ("secundyDataSource") Private DataSource DataSource; // @Bean (name = "EntityManagerPrimary") // @Primary // Public EntityManager EntityManager (EntityManagerFactoryBuilder Builder) {// return CustomerEntityManagerFactory (construtor) .getObject (). CreateEntityManager (); //} @Bean (name = "EntityManagerFactorySeCondary") Public LocalContaiRentityManagerFactoryBean CustomerEntityManagerFactory (EntityManagerFactoryBuilder Builder) {Return Builder.DataSource (DataSource) .Properties (getVenderPerties (DataSource). .construir(); } mapa privado <string, string> getVendorProperties (DataSource DataSource) {return jpaProperties.gethibernateProperties (DataSource); } @Bean (name = "transactionManagerSecondary") PlatformTransactionManager TransactionManagerSecondary (EntityManagerFactoryBuilder Builder) {return New JPatransactionManager (CustomerEntityManagerFactory (Builder) .getObject ()); }}importar org.springframework.data.jpa.repository.jparepository; importar org.springframework.data.jpa.repository.modifying; importar org.springframework.data.jpa.repository.query; importar com.test.entity.manage.banner; Public Interface BannerRepository estende JParepository <Banner, Long> {@modifying @Query ("Atualizar banner m Set M.Name =? 1 onde M.id =? 2") public void Update (String BannerName, Long ID); } 1.5. 注意 : 对 @Primary 修饰的 LocalContAineRentityManagerFactoryBean 可以不用指定 TransactionManager , Spring 上下文自动使用默认的 JpatransactionManager , 但是对于第二个或第三个等等必须指定 TransactionManager 。可以参考 Springboot 官方文档中的相关章节。
总结
以上所述是小编给大家介绍的 Bot de mola Springjpa 支持多个数据源的实例代码 , 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!