dyc87112 / blog-comments

5 stars 1 forks source link

Spring Boot多数据源配置与使用 | 程序猿DD #101

Open dyc87112 opened 6 years ago

dyc87112 commented 6 years ago

http://blog.didispace.com/springbootmultidatasource/

之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源

huangyu412173758 commented 6 years ago

@Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } 哥哥,你这里@bean指定name注册bean,这个@Qualifier("primaryDataSource")又是什么意思呢,为啥要有这一步

MrChair commented 6 years ago

@huangyu412173758 @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } 哥哥,你这里@bean指定name注册bean,这个@Qualifier("primaryDataSource")又是什么意思呢,为啥要有这一步

同问,@Qualifier("primaryDataSource")目的是什么?

codeyoyo commented 5 years ago

博主,我用的spring boot 2.1.0 版本的!按照你所说的配置多数据源的不行,希望你能给我指点下。我的QQ是 461818047

firefoxmmx2 commented 5 years ago

@codeyoyo 博主,我用的spring boot 2.1.0 版本的!按照你所说的配置多数据源的不行,希望你能给我指点下。我的QQ是 461818047

可以使用 @Autowired private JpaProperties jpaProperties; @Autowired private HibernateProperties hibernateProperties;

    private Map<String,Object> getVendorProperties() {
        return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
    }

这样来处理

boomo commented 5 years ago

@huangyu412173758 @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } 哥哥,你这里@bean指定name注册bean,这个@Qualifier("primaryDataSource")又是什么意思呢,为啥要有这一步 去掉@Qualifier("primaryDataSource")之后,好像也没啥问题

qxzs0517 commented 5 years ago

大哥,basePackages= { "com.didispace.domain.s" })这句话的你的意思是吧实体的bean对象和repository借口都放在了domain的s包下了是吗?

dgqypl commented 5 years ago

@MrChair

@huangyu412173758 @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } 哥哥,你这里@bean指定name注册bean,这个@Qualifier("primaryDataSource")又是什么意思呢,为啥要有这一步

同问,@Qualifier("primaryDataSource")目的是什么?

@boomo

@huangyu412173758 @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } 哥哥,你这里@bean指定name注册bean,这个@Qualifier("primaryDataSource")又是什么意思呢,为啥要有这一步 去掉@Qualifier("primaryDataSource")之后,好像也没啥问题

其实是可以去掉的,而在JdbcTemplate primaryJdbcTemplate(...)这个方法的参数中是会起作用的,指明入参是primaryDataSource还是secondaryDataSource

daniumqy commented 5 years ago

使用spring2.0 改为spring.datasource.secondary.jdbc-url可以解决报错的问题

qxzs0517 commented 5 years ago

谢谢您的帮助

---原始邮件--- 发件人: "daniumqy"notifications@github.com 发送时间: 2019年7月2日(星期二) 下午2:56 收件人: "dyc87112/blog-comments"blog-comments@noreply.github.com; 抄送: "chishung"954789221@qq.com;"Comment"comment@noreply.github.com; 主题: Re: [dyc87112/blog-comments] Spring Boot多数据源配置与使用 | 程序猿DD (#101)

使用spring2.0 改为spring.datasource.secondary.jdbc-url可以解决报错的问题

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

gpnine commented 5 years ago

项目里面其他用到JdbcTemplate的地方也需要加上对应jdbc连接的注解

qxzs0517 commented 5 years ago

嗯嗯 好的 大神 如果可以的话 能加下您微信吗

------------------ 原始邮件 ------------------ 发件人: "gouwuche"notifications@github.com; 发送时间: 2019年7月10日(星期三) 下午3:43 收件人: "dyc87112/blog-comments"blog-comments@noreply.github.com; 抄送: "954789221"954789221@qq.com;"Comment"comment@noreply.github.com; 主题: Re: [dyc87112/blog-comments] Spring Boot多数据源配置与使用 | 程序猿DD (#101)

项目里面其他用到JdbcTemplate的地方也需要加上对应jdbc连接的注解

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.