spring.datasource.url=jdbc:sqlserver://server;databaseName=ProductionMetrics
spring.datasource.username=ProductionMeusernametricsUser
spring.datasource.password=password
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.hikari.maximum-pool-size=20
# Products
trwbi.datasource.url=jdbc:sqlserver://server;databaseName=TRWBI
trwbi.datasource.username=username
trwbi.datasource.password=password
trwbi.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
trwbi.datasource.hikari.maximum-pool-size=20
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "defaultEntityManagerFactory",
transactionManagerRef = "defaultTransactionManager",
basePackages = {
"com.domain.visualisation.shared.repository"
}
)
public class DefaultDbConfig {
@Primary
@Bean(name = "defaultDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource defaultDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "defaultEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean
entityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier("defaultDataSource") DataSource dataSource
) {
return builder
.dataSource(dataSource)
.packages("com.domain.visualisation.shared.entities")
.persistenceUnit("default")
.build();
}
@Primary
@Bean(name = "defaultTransactionManager")
public PlatformTransactionManager defaultTransactionManager(
@Qualifier("defaultEntityManagerFactory") EntityManagerFactory defaultEntityManagerFactory
) {
return new JpaTransactionManager(defaultEntityManagerFactory);
}
}
为什么它们没有被应用?
如果有多个数据源,并且由于您使用的是DataSourceBuilder,以下工作如下。
spring.datasource.maximum-pool-size=20
trwbi.datasource.maximum-pool-size=20
另外,在您的情况下,我建议关闭自动配置:
@SpringBootApplication(scanBasePackages = {...},
exclude = {DataSourceAutoConfiguration.class} )
@EnableSwagger2
public class Application {
....
如果不使用生成器,而是使用自动配置,则使用
spring.datasource.hikari.minimumIdle=1
spring.datasource.hikari.maximum-pool-size=3
Hikari CP版本:2.7.4 这实际上不是一个问题,而是一些疑问。a) maxLifetime:30分钟后退出连接。它是否也会在终止时自动创建新连接,或者等待新请求,然后创建新连接?考虑到池的空闲时间超过minIdle。 b)idle time out:10分钟不活动后会掉线?但是10分钟太长了。如果我将它标记为10s(从代码中可以看出,10是最小值)可以吗?否则,总会有比最小连接数高的连接
默认情况下,Spring数据JPA或Hibernate的自动提交设置为false。这听起来很合理,因为这些框架与实体一起工作,并且对实体的更新可能涉及通过多个SQL查询对多个表的更新。因此,通过将auto-commit设置为false并显式控制事务,这些框架确保了对实体的更改是原子的和一致的。 但现在Hikari是spring data jpa的默认连接池提供程序,在查看应用程序日志时,我看到Hi
你好,我在我的项目中使用Spring Boot和Hikari进行db连接。spinger引导版本是2.2.5.RELEASE,Hikari是3.4.2。但是,当我运行我的项目时,它总是使用Hikari默认配置值,而不是使用我的属性文件中的值。这是我的属性: 这是我在应用程序配置中的数据源: 下面是输出:10:23:19.050[main]DEBUG com . zax xer . hikari .
我的 Spring 启动应用程序中有两个数据源,因此我无法使用标准数据源。其中之一的定义如下: 上面yaml文件中定义的Hikari属性没有被考虑在内(可能是由于)。要求是使用默认的 Hikari 属性并覆盖上面定义的属性。请建议如何做到这一点。
我请你们所有人回答我在HikariCP文档中找不到的问题。假设我设置了以下池参数: 注意:我不是数据库的所有者,我不能配置它或让它重新配置以满足我的需要。我也无法访问它的配置。 我们的设置是Spring 4.1.6,Hibernate 4.3.7和JPA 2.1 API,Hikari 2.1.0
我有一个应用程序,它将C3p0与Hibernate5和Hibernate使用。我想尝试使用Hikari,但我无法运行该应用程序。 专家 Hibernate版本为:5.2.17.Final Spring配置 我尝试了上述方法的不同排列,包括将用户名和密码直接传递给数据源: 但是我总是以这个错误结束: 这是由光函数引起的: