pom依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.11</version>
</dependency>

jdbc.properties

spring集成druid示例_java

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/itheima
jdbc.username=root
jdbc.password=******

配置类JdbcConfig

package com.zxl.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

/**
* @author xueliang.z
* @date 2022年10月27日 5:23 PM
*/
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;

@Bean
public DataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driverClassName);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}

解读:

  • ​@Configuration​​​:声明我们​​JdbcConfig​​是一个配置类
  • ​@PropertySource​​​:指定属性文件的路径是:​​classpath:jdbc.properties​
  • 通过​​@Value​​为属性注入值
  • 通过@Bean将 ​​dataSource()​​方法声明为一个注册Bean的方法,Spring会自动调用该方法,将方法的返回值加入Spring容器中。

然后我们就可以在任意位置通过​​@Autowired​​注入DataSource了!

controller测试

package com.zxl.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;

/**
* @author xueliang.z
* @date 2022年10月27日 5:17 PM
*/
@RestController
public class HelloController {

@Autowired
private DataSource dataSource;
@GetMapping("hello")
public String hello() {
return "hello"+dataSource;
}
}

请求测试:
​​​hello{ CreateTime:"2022-10-28 09:39:34", ActiveCount:0, PoolingCount:0, CreateCount:0, DestroyCount:0, CloseCount:0, ConnectCount:0, Connections:[ ] }​​​ 通过debug也可以看到​​dataSource​​中已经成功注入了属性值。