导入org.springframework.boot.springapplication;导入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.repository”)公共类应用程序扩展了SpringBootServletIlItialializer {public static void main(string string [] args [] args [] args agrs = springapplication app = new springapplication.claps.class.class.class.class.class.class.class.class.class.class); app.run(args); //springapplication.run(application.class,args); } @Override Protected SpringApplicationBuilder configure(SpringApplicationBuilder应用程序){return Application.sources(application.class); }}}导入java.util.map;导入javax.sql.datasource;导入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;导入org.springframework.context.annotation.bean;导入org.springframework.context.annotation.configuration;导入org.springframework.context.annotation.primary;导入org.springframework.data.jpa.repository.config.enablejparepositories;导入org.springframework.orm.jpa.localcontainerentitymanagerfactorybean;导入com.test.entity.statistic.sysuser;导入com.test.repository.system.SystemRepository; @Configuration @enablejparepositories(EntityManagerFactoryReref =“ EntityManagerFactoryPrimary”,basepackageclasses = {SystemRepository.Class})公共类Global global globaldataConfiguration {// @autowied私人jpaproperties jpaproperties; @Bean(name="primaryDataSource") @Primary @ConfigurationProperties(prefix="datasource.primary") public DataSource primaryDataSource() { System.out.println("-------------------- primaryDataSource init ---------------------");返回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() .password(dbconfig.getPassword()); // return Factory.build();返回datasourcebuilder.create()。build(); } // @bean(name =“ entityManagerPrimary”)// @primary // public entityManager entityManager(EntityManagerFactoryBuilder Builder){// return customerentityManagerFactory(buililder).getObjectory(builder).getObject()createNtityManager()。 //} @bean(name =“ entityManagerFactoryPrimary”)@primary localContainErentityManagerFactoryBean cultiserentityManagerFactory(EntityManagerFactoryBuilder Builder) .packages(sysuser.class).persistenceUnit(“ system”).build(); }私有地图<字符串,字符串> getVendorProperties(dataSource dataSource){返回jpaproperties.gethibernateproperties(dataSource); }}}导入java.util.map;导入javax.sql.datasource;导入org.springframework.beans.factory.annotation.autowired;导入org.springframework.beans.factory.annotation.qualifier;导入org.springframework.boot.autoconfigure.orm.jpa.entitymanagerfactorybuilder;导入org.springframework.boot.autoconfigure.orm.jpa.jpaproperties;导入org.springframework.context.annotation.bean;导入org.springframework.context.annotation.configuration;导入org.springframework.data.jpa.repository.config.enablejparepositories;导入org.springframework.orm.jpa.jpatransactionmanager;导入org.springframework.orm.jpa.localcontainerentitymanagerfactorybean;导入org.springframework.transaction.platformtransactionManager;导入org.springframework.transaction.annotation.enabletransactionManagement;导入com.test.entity.manage.banner;导入com.test.repository.manage.bannerrepository; @enabletransactionManagement @enablejparepositories(EntityManagerFactoryRef =“ EntityManagerFactorySecondary”,TrassActionManagerRef =“ TrassActionManagerSecondary”,basepackageclasses = {BannerRepoSitory.Class prublic clupprie clupperrig secontraf, jpaproperties; @autowired@feolifier(“ SecontaryDataSource”)私人数据源数据; // @bean(name =“ entityManagerPrimary”)// @primary // public entityManager entityManager(EntityManagerFactoryBuilder Builder){//返回cultuertentityManagerFactory(buililder).getObject(buil builder).getObject(buitObject).getObject()。 //} @bean(name =“ EntityManagerFactorySecondary”)公共LocalContainerentityManagerFactoryBean customerentityManagerFactory(EntityManagerFactoryBuilder Builder){ .persistenceUnit(“客户”).build(); }私有地图<字符串,字符串> getVendorProperties(dataSource dataSource){返回jpaproperties.gethibernateproperties(dataSource); } @bean(name =“ TransActionManagerSecondary”)PlatformTransActionManager TrassActionManagerSecondary(EntityManagerFactoryBuilder builder){返回新的JpatransactionManager(CultuerentityManagerFactory(Builder(builder).getObject).getObject).getObject); }}}导入org.springframework.data.jpa.repository.jparepository;导入org.springframework.data.jpa.repository.modifying;导入org.springframework.data.jpa.repository.query;导入com.test.entity.manage.banner;公共接口bannerrepository扩展了jparepository <banner,long> {@modifying @query(“ update banner m set m.name =?1 where m.id =?2”)public void dustafe(字符串bannername,long ID); } 1.5。注意:@@primary localcontainerentityManagerFactoryBean可以不用指定TransActionManager,Spring上下文自动使用默认的jpatransactionManager,但是对于第二个或第三个等等必须指定TransActionManager。可以参考springboot官方文档中的相关章节。
总结
spring boot springjpa支持多个数据源的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!