spring如何整合druid连接池?

spring整合druid连接池

1.新建maven项目

  1. 打开IDE(比如IntelliJ IDEA, Eclipse等)。
  2. 选择新建项目
    1. 在IntelliJ IDEA中,选择File > New > Project
    2. 在Eclipse中,选择File > New > Maven Project
  3. 选择Maven项目模板
    1. 在IntelliJ IDEA中,选择Archetype选项卡,并搜索或选择一个适合Web应用的模板,如maven-archetype-webapp
    2. 在Eclipse中,勾选Create a simple project,然后选择一个合适的模板。
  4. 填写项目信息
    1. 组织ID (groupId):通常是逆域名形式,如com.example
    2. 艺术品ID (artifactId):项目的名称。
    3. 版本 (version):初始版本号,如1.0-SNAPSHOT
    4. 包装 (packaging):对于Web应用程序,可以选择war;对于普通Java应用程序,可以选择jar
  5. 完成创建:点击完成按钮,IDE将下载所需的依赖并创建项目。

2.新建mavenModule

  1. 打开现有的Maven项目
  2. 添加新模块
    1. 在IntelliJ IDEA中,右键点击项目的根目录 -> New > Module... -> 选择Maven Module
    2. 在Eclipse中,右键点击项目的src/main/java目录 -> New > Other... -> 选择Maven类别下的Module
  3. 填写模块信息
    1. 组织ID (groupId):与主项目相同。
    2. 艺术品ID (artifactId):模块的名称。
    3. 版本 (version):与主项目相同。
    4. 包装 (packaging):根据模块的功能选择warjarpom
  4. 完成创建:点击完成按钮,IDE将创建新的模块。

3.导入相关依赖

首先,你需要添加Druid连接池的依赖。Druid是由阿里巴巴开发的一个高性能、功能丰富的Java数据库连接池组件。在pom.xml文件中添加如下依赖:

<dependencies>

<!--导入spring-context依赖-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context </artifactId>

<version>6.1.12</version>

</dependency>

<!--导入测试依赖-->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!--导入日志框架-->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.23.1</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-slf4j2-impl</artifactId>

<version>2.23.1</version>

</dependency>

<!--整合数据库-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.33</version>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.2.7</version>

</dependency>

</dependencies>

注:需要刷新一下maven

4.配置log4j2.xml

配置log4j2.xml文件是为了能够控制日志输出的格式、级别、目标等。Log4j2是一个强大的日志框架,提供了丰富的特性来帮助开发者更好地管理和调试日志信息。下面是一个基本的log4j2.xml配置示例,用于设置日志的输出到控制台和文件。

在resource文件夹下配置log4j2.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        \<!--配置控制台输出日志--\>
        <Console name="Console" target="SYSTEM_OUT">
            <!--日志的输出格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <!--配置文件输出日志-->
        <File name="File" fileName="d:logs/app.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        \<!--日志级别为debug--\>
        <Root level="debug">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

5.配置druid.xml

1)xml中如何引入properties

<beans>标签中加入

复制代码
xmlns:context="http://www.springframework.org/schema/context"
复制代码
xsi:schemaLocation="
        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd
        "

注:上述是为了引入外部文件,需要做的准备工作

2)下面是配置文件

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd

    ">
        <!-- 这个相当于导入外部配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    
</beans>
复制代码

6.准备jdbc.properties

复制代码
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
JDBC 配置项解释
  1. jdbc.driver : 这个配置指定了用于连接数据库的 JDBC 驱动类名称。在这个例子中,com.mysql.jdbc.Driver 指的是 MySQL 的 JDBC 驱动(也称为 MySQL Connector/J)。需要注意的是,如果你正在使用的是 MySQL Connector/J 8.x 或更高版本,正确的驱动类名应该是 com.mysql.cj.jdbc.Driver

  2. jdbc.url: 这个配置提供了连接到数据库的具体 URL 地址。在给定的例子中:

    1. jdbc:mysql://localhost:3306/ 表示连接到本地主机上运行的 MySQL 数据库实例,端口号为 3306。
    2. test 是要连接的数据库名称。
    3. ?useUnicode=true&characterEncoding=UTF-8 是附加的查询字符串参数,用来指定客户端与数据库之间的字符编码为 UTF-8。
  3. jdbc.username : 这是用于登录数据库的用户名。在这里,用户名为 root

  4. jdbc.password : 这是与用户名对应的密码。这里的密码是 root

7.配置druid

复制代码
<context:property-placeholder location="classpath:jdbc.properties"/>

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close"
    >
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>

</bean>

详细解释如下

<context:property-placeholder location="classpath:jdbc.properties"/>

这一行的作用是在 Spring 应用上下文中定义一个属性占位符处理器,该处理器会从类路径下的 jdbc.properties 文件中加载属性值。这样,可以在 XML 配置文件中使用 ${属性名} 的形式引用这些属性值。

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">

这一行定义了一个名为 dataSource 的 Bean,其类型为 DruidDataSource。DruidDataSource 是阿里巴巴开源的一个高性能的 Java 数据库连接池组件。init-method="init" 和 destroy-method="close" 分别指定了在 Bean 初始化和销毁时调用的方法。

init-method="init": 当 Spring 容器创建这个 Bean 时,会在构造方法执行后调用 init 方法。

destroy-method="close": 当 Spring 容器销毁这个 Bean 时,会调用 close 方法来释放资源。

<property name="driverClassName" value="${jdbc.driver}"/>

这一行设置了 DruidDataSource 的 driverClassName 属性,该属性指定了 JDBC 驱动的类名。这里的值通过 ${jdbc.driver} 引用了 jdbc.properties 文件中的 jdbc.driver 属性值。

<property name="url" value="${jdbc.url}"/>

这一行设置了 DruidDataSource 的 url 属性,该属性指定了数据库连接的 URL。同样地,这里通过 ${jdbc.url} 引用了 jdbc.properties 文件中的 jdbc.url 属性值。

<property name="username" value="${jdbc.username}"/>

这一行设置了 DruidDataSource 的 username 属性,该属性指定了数据库连接的用户名。通过 ${jdbc.username} 引用了 jdbc.properties 文件中的 jdbc.username 属性值。

<property name="password" value="${jdbc.password}"/>

这一行设置了 DruidDataSource 的 password 属性,该属性指定了数据库连接的密码。通过 ${jdbc.password} 引用了 jdbc.properties 文件中的 jdbc.password 属性值。

8.测试

import com.alibaba.druid.pool.DruidDataSource;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DruidTest {

@Test

public void test() {

/**

* 加载指定配置

*/

ApplicationContext context = new ClassPathXmlApplicationContext("druid.xml");

//获取druid

DruidDataSource dataSource = context.getBean(DruidDataSource.class);

System.out.println(dataSource);

System.out.println(dataSource.getUrl() );

System.out.println(dataSource.getUsername());

System.out.println(dataSource.getPassword());

System.out.println(dataSource.getDriverClassName());

}

}

相关推荐
Aries2631 分钟前
Spring事务传播行为详解
java·数据库·spring
陌上少年,且听这风吟8 分钟前
【已解决】SpringBoot3项目整合Druid依赖:Druid监控页面404报错
java·spring boot·spring
code.song11 分钟前
电影评论|基于springBoot的电影评论网站设计与实现(附项目源码+论文+数据库)
数据库·spring boot·后端
洗发水很好用16 分钟前
新版IDEA提示@Autowired不建议字段注入
java·ide·intellij-idea
model200518 分钟前
sahi目标检测java实现
java·算法·目标检测
LG.YDX41 分钟前
java:练习
java
给自己做减法1 小时前
排序算法快速记忆
java·算法·排序算法
Dovir多多1 小时前
渗透测试入门学习——php与mysql数据库连接、使用session完成简单的用户注册、登录
前端·数据库·后端·mysql·安全·html·php
Flying_Fish_roe1 小时前
Spring Boot-WebSocket相关问题
spring boot·后端·websocket
计算机学姐1 小时前
基于微信小程序的食堂点餐预约管理系统
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis