在单体应用中,资源管理是提高性能和处理高并发的重要方面。资源管理通常涉及到数据库连接、线程管理等,这些资源如果管理不当,会导致系统性能下降甚至崩溃。连接池和线程池是两个常用的资源管理手段,能够显著提高资源的复用性,减少频繁创建和销毁资源的开销。
1. 数据库连接池
数据库连接池是管理数据库连接的常用方式,它通过预先创建一定数量的数据库连接,存放在池中供应用程序复用,从而避免每次访问数据库时都需要重新建立连接的开销。这不仅能提高应用的性能,还能减少数据库服务器的负担。
1.1 使用HikariCP连接池
HikariCP是一个高效的JDBC连接池,广泛用于Java应用中。以下是一个使用HikariCP管理数据库连接的实例:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class HikariCPExample {
private static HikariDataSource dataSource;
static {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
config.setUsername("root");
config.setPassword("password");
config.setMaximumPoolSize(10); // 设置最大连接数
config.setMinimumIdle(5); // 设置最小空闲连接数
dataSource = new HikariDataSource(config);
}
public static void main(String[] args) {
try (Connection connection = dataSource.getConnection();
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {
while (rs.next()) {
System.out.println("User ID: "