spring运用hikari连接池

本文详细介绍了如何在Spring框架中集成HikariCP连接池,包括所需jar包的导入、配置文件的设置以及在applicationContext.xml中的具体配置步骤。通过示例代码展示了DAO层的实现,并提供了测试连接池的方法。

spring引入HikariCP连接池所需jar包(点击下载)

一、导入jar包

二、applicationContext.xml中配置

  1.      准备连接池配置文件(db.properties)  ,测试代码如下(更对hikari的属性见https://github.com/brettwooldridge/HikariCP/tree/2.3.x#essentials)       
jdbc.Url=jdbc:mysql://localhost:3306/hikaritest
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=123
jdbc.maximumPoolSize=15
jdbc.poolName=hikariPool
jdbc.idleTimeout=60000
jdbc.connectionTimeout=30000

 

 

2.配置applicationContext.xml,注入hikari(在<beans>中添加一下代码</beans>)

<!-- 获取连接池配置文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 注入hikari连接池 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <!-- 根据hikari的GitHub手册,这是DataSourceJDBC驱动程序提供的类的名称。请参阅特定JDBC驱动程序的文档以获取此类名,或参见下表。注意不支持XA数据源。XA需要像bitronix这样的真正的事务管理器 。
      请注意,如果您使用的jdbcUrl是“old-school”基于DriverManager的JDBC驱动程序配置,则不需要此属性 -->
    <!--  <property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"></property>-->
    <property name="maximumPoolSize" value="${jdbc.maximumPoolSize}" />
    <!-- 主要显示在日志记录和JMX管理控制台中,以标识池和池配置 -->
    <property name="poolName" value="${jdbc.poolName}"></property>
    <property name="idleTimeout" value="${jdbc.idleTimeout}" />
    <property name="jdbcUrl" value="${jdbc.Url}"></property>
    <!-- name值不能写user,特定属性 -->
    <property name="connectionTimeout" value="${jdbc.connectionTimeout}"></property>
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    
</bean>
<bean name="hikariDataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <constructor-arg ref="hikariConfig"></constructor-arg>    
</bean>

3.dao层这里用的spring中的jdbcDaoSuper,可以直接通过super.getJdbcTemplate()方法获得数据源,省略spring的jdbcTemplate

public class UserDao extends JdbcDaoSupport {
   public void save(User user) {
	   String sql = "insert into t_user values(?,null)";
	   super.getJdbcTemplate().update(sql, user.getName());
	   
   }
}

 4.测试连接池,所用的jar包(点击下载)

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class Demo {
	@Resource(name="userDao")
	private UserDao ud;
	@Test
    public void function() {
    User user = new User();
    user.setName("tom");
    ud.save(user);
		
    }

5.测试结果,添加成功

注:该博客为学习笔记,如有错误,还请指出,感谢!欢迎留言 

 

Spring Boot中,HikariCP是默认使用的数据库连接池。如果需要关闭或禁用HikariCP连接池,可以通过配置全局配置文件(`application.properties` 或 `application.yml`)来实现。具体方法如下: ### 1. **通过配置禁用连接池** 如果希望完全禁用连接池功能,可以将数据源类型设置为不使用连接池的实现。例如,可以使用`spring.datasource.type=com.zaxxer.hikari.HikariDataSource`的替代方案,如`org.springframework.boot.jdbc.SimpleDriverDataSource`,从而绕过HikariCP。 在`application.properties`中配置如下内容: ```properties spring.datasource.type=org.springframework.boot.jdbc.SimpleDriverDataSource ``` 在`application.yml`中配置如下内容: ```yaml spring: datasource: type: org.springframework.boot.jdbc.SimpleDriverDataSource ``` 通过上述配置,Spring Boot将不会使用HikariCP连接池,而是采用`SimpleDriverDataSource`直接创建数据库连接[^3]。 ### 2. **通过设置连接池参数限制连接池行为** 如果目标是关闭连接池的某些特性(例如最大连接数、空闲连接等),而不是完全禁用HikariCP,可以通过调整连接池的配置参数来实现。 在`application.properties`中,可以配置以下内容: ```properties spring.datasource.hikari.maximum-pool-size=0 spring.datasource.hikari.minimum-idle=0 ``` 在`application.yml`中,可以配置以下内容: ```yaml spring: datasource: hikari: maximum-pool-size: 0 minimum-idle: 0 ``` 上述配置会将HikariCP连接池的最大连接数和最小空闲连接数设置为0,从而达到关闭连接池的目的[^1]。 ### 3. **通过排除HikariCP依赖** 如果希望完全移除HikariCP依赖,可以通过修改项目的依赖管理文件(如`pom.xml`或`build.gradle`)来实现。 在Maven项目中,可以在`pom.xml`中排除HikariCP的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </exclusion> </exclusions> </dependency> ``` 在Gradle项目中,可以在`build.gradle`中排除HikariCP的依赖: ```gradle implementation('org.springframework.boot:spring-boot-starter-data-jpa') { exclude group: 'com.zaxxer', module: 'HikariCP' } ``` 通过排除HikariCP依赖,Spring Boot将不再自动配置HikariCP连接池。 ### 4. **自定义数据源配置** 如果需要进一步控制数据源行为,可以通过编写自定义的数据源配置类来实现。例如,可以通过编程方式创建一个不使用连接池的数据源。 示例代码如下: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.boot.jdbc.DataSourceBuilder; import javax.sql.DataSource; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { return DataSourceBuilder.create() .url("jdbc:mysql://localhost:3306/your_database") .username("your_username") .password("your_password") .build(); } } ``` 通过上述代码,可以完全绕过Spring Boot的默认数据源配置,并自定义数据源行为[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yhblog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值