下载此文档

技术帖 Spring Boot jpa多Repository(数据源)及读写分离.doc


文档分类:医学/心理学 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
技术帖 Spring Boot jpa多Repository(数据源)及读写分离
为了解决数据库瓶颈,分散数据库压力,读写分离经常被使用到。接下来我们就来谈一谈,在spring boot 中如何使用jpa进行读写分离。本文提ce dataSource) { return builder .dataSource(dataSource) .packages() .properties(getVendorProperties(dataSource)) .persistenceUnit('write') .build(); } ***@Bean ***@Primary public PlatformTransactionManager writeTransactionManager(***@Qualifier('writeEntityManagerFactory') LocalContainerEntityManagerFactoryBean writeEntityManagerFactory) { JpaTransactionManager transactionManager = new JpaTransactionManager(()); return transactionManager; }第一种方案根据JPA多Repository的原理,我们可以知道,我们是可以通过配置扫描不同Repository接口类所在的包达到配置多Repository的目的。 这个这一点,第一种方案就很自然的可以想到。那就是通过接口继承的方式添加一个子接口,但是我们子接口里什么都不用操作,只维护原接口就可以了。这样我们让读的Repository扫描另外的Repository所在的包就可以轻松实现读写分离了。这种方案简单易实现,唯一的步骤就是多添加了一个接口。第二种方案如果是已经完成的项目,添加接口也有可能是非常庞大的一个工程。那么我们就可以利用第二种方案了。这是通过修改注册Bean时候的源码,让两次扫描到的Repository生成不同的名称注册到Spring容器当中,把原来的标记为Primary。通过源码我们可以发现生成Bean名称的类是 ,把不同配置类扫描到的Repository使用不同的名称,虽然它们类型是一样的,我们可以通过名称限定来注入相应的Bean。我们可以添加一个自己的注解,用来给我们的配置类添加元信息。
自定义注解:/*** repository bean 名称的前缀*/***@Target()***@Retention()***@******@Inheritedpublic ***@interface RepositoryBeanNamePrefix { String value();}
修改RepositoryConfigurationDelegate,添加对应的逻辑:
String beanName = confi

技术帖 Spring Boot jpa多Repository(数据源)及读写分离 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小泥巴
  • 文件大小14 KB
  • 时间2022-01-26
最近更新