下面是详细讲解“Spring Boot 集成 Druid 数据源过程详解”的攻略,包含两条示例:
1. 简介
Druid 作为一个高效且能够监控 SQL 执行的JDBC 连接池,被广泛应用于Java Web 开发中。在 Spring Boot 项目中,集成 Druid 数据源也是一个常见的需求。本文将会给出一份关于如何在 Spring Boot 中集成 Druid 数据源的详细攻略。
2. 添加依赖
在项目的 pom.xml 文件中添加如下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
druid-spring-boot-starter
类库是 Druid 官方提供的用于在 Spring Boot 中集成 Druid 数据源的启动器类库,通过添加该依赖来实现 Druid 数据源的快速集成。
3. 配置数据源
在 Spring Boot 项目中,所有的配置都在 application.properties
或者 application.yml
文件中进行配置。下面是一个数据源相关的配置文件的示例:
在 application.yml
中配置:
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
# Druid 数据源相关配置
type: com.alibaba.druid.pool.DruidDataSource
maxActive: 10
initialSize: 5
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
在 application.properties
中配置:
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# Druid 数据源相关配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.max-active=10
spring.datasource.initial-size=5
spring.datasource.max-wait=60000
spring.datasource.min-idle=1
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.min-evictable-idle-time-millis=300000
spring.datasource.validation-query=SELECT 1 FROM DUAL
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false
spring.datasource.pool-prepared-statements=true
spring.datasource.max-pool-prepared-statement-per-connection-size=20
在配置文件中,我们指定了要使用的数据库连接、datasource 类型(DruidDataSource)以及连接池的各项参数。
4. 注入数据源
完成数据源的配置之后,我们即可在代码中使用该数据源。对于 Spring Boot 项目,我们通常使用 javax.sql.DataSource 代表数据源。 在 Spring Boot 项目中,使用 @Autowired
注解即可注入 Druid 数据源:
@Autowired
private DataSource dataSource;
在上述代码中,变量 dataSource 即为注入的 Druid 数据源。
5. 示例
示例一:查询学生表中的数据
在该示例中,我们将构建一个 Spring Boot 项目,实现查询学生表中的数据。通过以下步骤来完成该示例:
-
创建一个名为
students
的数据库,并创建一个名为student
的表,其中包含id
和name
两个字段。 -
编写以下代码:
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private DataSource dataSource;
@GetMapping
public List<String> getStudents() throws SQLException {
List<String> students = new ArrayList<>();
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM student");
while (rs.next()) {
students.add(rs.getString("name"));
}
return students;
}
}
- 启动应用程序,访问
http://localhost:8080/students
即可查看学生表中的数据。
示例二:监控应用程序中的 SQL 执行情况
Druid 连接池除了具有高效以外,还提供了强大的监控功能。在该示例中,我们将展示如何在应用程序中启用该监控功能。
- 进入项目的配置文件(
application.yml
或application.properties
),添加以下配置:
# Druid 监控配置
spring:
datasource:
druid:
stat-view-servlet:
enabled: true
url-pattern: /druid/*
filter:
stat:
enabled: true
exclusions: /static/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
- 启动应用程序,并访问
http://localhost:8080/druid/index.html
,即可查看 SQL 执行的监控信息。
6. 结论
在本文中,我们详细讲述了如何在 Spring Boot 中集成 Druid 数据源,以及如何启用 Druid 连接池的监控功能。通过本文,我们相信您已经掌握了使用 Druid 数据源的相关技能,可以更加方便地在项目中使用该连接池。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot 集成 Druid 数据源过程详解 - Python技术站