同一Spring项目配置双PostgreSQL数据库时遇Bean创建错误
Spring多数据源配置报错:jdbcUrl is required with driverClassName
错误堆栈信息:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'comissionamentoEntityManagerFactory' defined in class path resource [coruripe/comissionamento/config/ComissionamentoConfig.class]: [PersistenceUnit: comissionamento] Unable to build Hibernate SessionFactory; nested exception is java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
原本项目仅为「comissionamento」模块配置单个数据库,现在需要新增独立的「sis」模块并配置第二个PostgreSQL数据库。参考Spring官方文档及社区论坛完成配置后,仍出现上述错误。
application.properties配置
# Database configurations for Comissionamento spring.datasource.comissionamento.url=jdbc:postgresql://localhost:5432/comissionamento spring.datasource.comissionamento.username=*** spring.datasource.comissionamento.password=*** spring.datasource.comissionamento.driver-class-name=org.postgresql.Driver # JPA/Hibernate configurations for Comissionamento spring.jpa.comissionamento.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.jpa.comissionamento.hibernate.ddl-auto=update spring.jpa.comissionamento.show-sql=true spring.jpa.comissionamento.format-sql=true # Database configurations for SIS spring.datasource.sis.url=jdbc:postgresql://localhost:5432/sis spring.datasource.sis.username=*** spring.datasource.sis.password=*** spring.datasource.sis.driver-class-name=org.postgresql.Driver # JPA/Hibernate configurations for SIS spring.jpa.sis.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.jpa.sis.hibernate.ddl-auto=update spring.jpa.sis.show-sql=true spring.jpa.sis.format-sql=true
ComissionamentoConfig类
@Configuration @EnableTransactionManagement @EnableJpaRepositories( basePackages = "coruripe.comissionamento.repository", entityManagerFactoryRef = "comissionamentoEntityManagerFactory", transactionManagerRef = "comissionamentoTransactionManager" ) public class ComissionamentoConfig { @Primary @Bean(name = "comissionamentoDataSource") @ConfigurationProperties(prefix = "spring.datasource.comissionamento") public DataSource dataSource() { return DataSourceBuilder.create().build(); } @Primary @Bean(name = "comissionamentoEntityManagerFactory") public LocalContainerEntityManagerFactoryBean entityManagerFactory( EntityManagerFactoryBuilder builder) { return builder .dataSource(dataSource()) .packages("coruripe.comissionamento.model") .persistenceUnit("comissionamento") .properties(Map.of( "hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect", "hibernate.hbm2ddl.auto", "update", "hibernate.show_sql", "true", "hibernate.format_sql", "true" )) .build(); } @Primary @Bean(name = "comissionamentoTransactionManager") public PlatformTransactionManager transactionManager( @Qualifier("comissionamentoEntityManagerFactory") EntityManagerFactory entityManagerFactory) { return new JpaTransactionManager(entityManagerFactory); } }
SisConfig类
@Configuration @EnableTransactionManagement @EnableJpaRepositories( basePackages = "coruripe.sis.repository", entityManagerFactoryRef = "sisEntityManagerFactory", transactionManagerRef = "sisTransactionManager" ) public class SisConfig { @Bean(name = "sisDataSource") @ConfigurationProperties(prefix = "spring.datasource.sis") public DataSource dataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "sisEntityManagerFactory") public LocalContainerEntityManagerFactoryBean entityManagerFactory( EntityManagerFactoryBuilder builder) { return builder .dataSource(dataSource()) .packages("coruripe.sis.model") .persistenceUnit("sis") .properties(Map.of( "hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect", "hibernate.hbm2ddl.auto", "update", "hibernate.show_sql", "true", "hibernate.format_sql", "true" )) .build(); } @Bean(name = "sisTransactionManager") public PlatformTransactionManager transactionManager( @Qualifier("sisEntityManagerFactory") EntityManagerFactory entityManagerFactory) { return new JpaTransactionManager(entityManagerFactory); } }
我认为所有配置均正确,但仍出现上述错误。目前「sis」包下仅创建了目录,尚未添加实体类或控制器。
内容的提问来源于Stack Exchange,提问作者Mikael Luiz
相关产品推荐
相关产品推荐

