当前位置: 首页 > news >正文

福州网站建设制作首选荧光信息濮阳新闻综合频道

福州网站建设制作首选荧光信息,濮阳新闻综合频道,大型公司办公室设计,wordpress怎么兼容浏览器一、主流的多数据源支持方式 将数据源对象作为参数#xff0c;传递到调用方法内部#xff0c;这种方式增加额外的编码。将Repository操作接口分包存放#xff0c;Spring扫描不同的包#xff0c;自动注入不同的数据源。这种方式实现简单#xff0c;也是一种“约定大于配置…一、主流的多数据源支持方式 将数据源对象作为参数传递到调用方法内部这种方式增加额外的编码。将Repository操作接口分包存放Spring扫描不同的包自动注入不同的数据源。这种方式实现简单也是一种“约定大于配置”思想的典型应用。本文将以这种方式实现JPA的多数据源支持使用Spring AOP面向切面编程然后在持久层接口方法上面加注解不同的注解使用表示使用不同的数据源。在此暂不做介绍。 二、修改application.yml配置多数据源 spring:datasource:primary:jdbc-url: jdbc:mysql://localhost:3306/testdb?useUnicodetruecharacterEncodingutf-8username: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driversecondary:jdbc-url: jdbc:mysql://localhost:3306/testdb?useUnicodetruecharacterEncodingutf-8username: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverjpa:hibernate:ddl-auto: updatedatabase: mysqlshow-sql: true三、 两组数据持久化接口及实体类,放到不同的package里面 将4.6章节中使用到的Article.java及ArticleRepository.java放到club.krislin.bootlaunch.jpa.testdb下面然后写另外一套操作接口放到club.krislin.bootlaunch.jpa.testdb2下面如下 Data Entity public class Message {IdGeneratedValueprivate Long id;Column(nullable false)private String name;Column(nullable false)private String content;} public interface MessageRepository extends JpaRepositoryMessage,Long {}四、多数据源支持 数据源DataSource的Bean对象创建并注入Spring上下文分别对应application.yml里面的两套数据源配置 Configuration public class JPADataSourceConfig {PrimaryBean(name primaryDataSource)Qualifier(primaryDataSource)ConfigurationProperties(prefixspring.datasource.primary) //结合application.yml的配置public DataSource primaryDataSource() {return DataSourceBuilder.create().build();}Bean(name secondaryDataSource)Qualifier(secondaryDataSource)ConfigurationProperties(prefixspring.datasource.secondary) //结合application.yml的配置public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();} }配置实体扫描以及事务管理,注意看Primary和带注释的地方 Configuration EnableTransactionManagement EnableJpaRepositories(entityManagerFactoryRefentityManagerFactoryPrimary,transactionManagerReftransactionManagerPrimary,basePackages { club.krislin.bootlaunch.jpa.testdb }) //设置Repository所在位置 public class JPAPrimaryConfig {ResourceQualifier(primaryDataSource)private DataSource primaryDataSource; //primary数据源注入PrimaryBean(name entityManagerPrimary) //primary实体管理器public EntityManager entityManager(EntityManagerFactoryBuilder builder) {return entityManagerFactoryPrimary(builder).getObject().createEntityManager();}PrimaryBean(name entityManagerFactoryPrimary) //primary实体工厂public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) {return builder.dataSource(primaryDataSource).properties(getVendorProperties()).packages(club.krislin.bootlaunch.jpa.testdb) //设置实体类所在位置.persistenceUnit(primaryPersistenceUnit).build();}Resourceprivate JpaProperties jpaProperties;private Map getVendorProperties() {return jpaProperties.getHibernateProperties(new HibernateSettings());}PrimaryBean(name transactionManagerPrimary) //primary事务管理器public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());} }上面的代码将扫描club.krislin.bootlaunch.jpa.testdb下面的实体对象和Repository并使用primary数据源。仿造这段代码再写一套club.krislin.bootlaunch.jpa.testdb2的配置使用secondary数据源。代码如下 Configuration EnableTransactionManagement EnableJpaRepositories(entityManagerFactoryRefentityManagerFactorySecondary,transactionManagerReftransactionManagerSecondary,basePackages { club.krislin.bootlaunch.jpa.testdb2 }) //设置Repository所在位置 public class JPASecondaryConfig {ResourceQualifier(secondaryDataSource)private DataSource secondaryDataSource;Bean(name entityManagerSecondary)public EntityManager entityManager(EntityManagerFactoryBuilder builder) {return entityManagerFactorySecondary(builder).getObject().createEntityManager();}Bean(name entityManagerFactorySecondary)public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) {return builder.dataSource(secondaryDataSource).properties(getVendorProperties()).packages(club.krislin.bootlaunch.jpa.testdb2) //设置实体类所在位置.persistenceUnit(secondaryPersistenceUnit).build();}Resourceprivate JpaProperties jpaProperties;private Map getVendorProperties() {return jpaProperties.getHibernateProperties(new HibernateSettings());}Bean(name transactionManagerSecondary)PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) {return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject());}}五、测试 //先构造一个Article对象article这个操作针对testdb articleRepository.save(article); //在构造一个Message对象message这个操作针对testdb2 messageRepository.save(message);如果article数据能正确插入testdb的article表message数据能正确的插入testdb2的message表则JPA的多数据源实现正确。
http://www.w-s-a.com/news/807857/

相关文章:

  • 旅游网网站建设网站如何自己做seo
  • 如何验证网站所有权做二手家具回收哪个网站好
  • 做哪种网站赚钱项目开发流程
  • 网站建设和网站网络推广网站建设软件定制
  • 站长工具网址查询全球云邮登陆网站
  • 宁波 住房和建设局网站网上发帖推广
  • 平面设计在线网站工业设计公司有哪些
  • 福州网站设计外包公司网站做的比较好
  • 如何设计网站首页网站开发综合技能实训心得体会
  • 用织梦做的网站好用吗w网站链接如何做脚注
  • 东莞做网站公司在哪哪里有网站培训的
  • 做宣传 为什么要做网站那重庆网站建设公司在线联系
  • 网站设计制作售价多少钱制作图片的软件是
  • 网站验证码目录简单带数据库的网站模版
  • 制作网站用c#做前台网站建设专题的意义
  • 广西建设职业技术学院教育网站牡丹区建设局网站
  • 网站后台怎么用ftp打开上海外贸进出口有限公司
  • 淘宝建设网站的意义大学生做那个视频网站
  • 如何提高你的网站的粘性建设银行流水网站
  • 微信h5在哪个网站做泰州专业网站制作公司
  • 现在.net做网站的多吗建设工程造价网
  • pc访问手机网站跳转违法网站开发人员
  • 网站前端做报名框wordpress 启动慢
  • 沈阳做网站客户多吗前端可以做网站吗
  • 网站设计规划书新媒体营销策略分析
  • dw个人网站主页怎么做天津工程信息建设网
  • 顺义做网站的公司网站页面设计基础教程
  • 安阳哪个公司做网站好企业没有做网站有的坏处
  • 网站开发有必要用php框架wordpress分页导航代码
  • wordpress建站seo鞍山制作网站哪家好