spring.datasource.druid.maxWait
时间: 2024-05-17 19:19:09 浏览: 162
spring.datasource.druid.maxWait是用于配置Druid数据源的最大等待时间。当所有连接都被占用时,新的请求会被加入等待队列中,此时如果等待时间超过了最大等待时间,就会抛出异常。因此,该属性的值应该根据实际情况进行调整,以确保应用程序在高并发情况下的稳定性和可靠性。默认值是-1,表示无限等待。
相关问题
spring项目中使用alibaba.druid.pool.DruidDataSource来装载oracle数据源
在Spring项目中使用阿里巴巴的Druid连接池来装载Oracle数据源,可以按照以下步骤进行:
1. 首先,在pom.xml文件中添加Druid和Oracle驱动的依赖:
```
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.7.0.0</version>
</dependency>
```
2. 在Spring配置文件中配置数据源:
```
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL"/>
<property name="username" value="your_username"/>
<property name="password" value="your_password"/>
<property name="initialSize" value="5"/>
<property name="maxActive" value="50"/>
<property name="minIdle" value="5"/>
<property name="maxWait" value="60000"/>
<property name="validationQuery" value="SELECT 1 FROM DUAL"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="60000"/>
<property name="minEvictableIdleTimeMillis" value="300000"/>
<property name="poolPreparedStatements" value="true"/>
<property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>
</bean>
```
其中,initialSize是连接池启动时创建的初始化连接数;maxActive是连接池最大连接数;minIdle是连接池最小连接数;maxWait是获取连接的最大等待时间;validationQuery是用来检测连接是否有效的SQL语句;testWhileIdle是空闲时是否进行连接检测;timeBetweenEvictionRunsMillis是定时检查连接池中空闲连接的间隔时间;minEvictableIdleTimeMillis是连接池中连接最小空闲时间;poolPreparedStatements是是否缓存PreparedStatement;maxPoolPreparedStatementPerConnectionSize是单个连接池中最大的缓存Statement数目。
3. 在DAO层中使用该数据源:
```
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
@PostConstruct
public void init() {
jdbcTemplate = new JdbcTemplate(dataSource);
}
// ...
}
```
在DAO实现类中通过@Autowired注入Druid数据源,并在@PostConstruct注解的init()方法中创建JdbcTemplate对象,即可使用该数据源进行数据库操作。
druid 手动指定数据源_Spring Boot (三) 整合 Druid 连接池
好的,这个问题很具体,我可以回答。在 Spring Boot 中使用 Druid 连接池,可以通过手动指定数据源的方式来实现。具体步骤如下:
1. 在 pom.xml 文件中添加 Druid 和数据库驱动的依赖。
2. 在 application.yml 或 application.properties 中配置 Druid 相关属性,如下:
```yaml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
filters: stat,wall,log4j
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
```
3. 在配置类中手动创建 Druid 数据源,如下:
```java
@Configuration
public class DruidConfig {
@Value("${spring.datasource.url}")
private String dbUrl;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(dbUrl);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driverClassName);
return dataSource;
}
}
```
通过以上步骤,就可以使用手动指定数据源的方式来整合 Druid 连接池了。如果还有疑问,可以继续追问。
阅读全文