SpringBoot内部集成Druid实现数据源加载

闲话不多说了直接贴代码了。。。

因为是springboot框架采用的application.yml配置---配置如下:

server: 
  port: 8080
#提供servlet支持加上pom.xml中的三个tomcat依赖  使springboot项目支持jsp页面
  jsp-servlet: 
    init-parameters:
      development: true
#配置i项目应用名称      
spring: 
  application: 
    name: my-pp
  mvc: 
    view:
      suffix: .jsp
      prefix: /WEB-INF/view/  
  datasource:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/teststu?useUnicode=true&characterEncoding=utf-8&useSSL=false
      username: root
      password: root
#通过阿里的德鲁伊来配置数据库的数据源 ///并且在项目中的config包中配置了数据切面及一些配置           
      type: com.alibaba.druid.pool.DruidDataSource
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
      initialSize: 1
      minIdle: 3
      maxActive: 20
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 30000
      validationQuery: select 'x'
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 打开PSCache,并且指定每个连接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filters: slf4j
      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      # 合并多个DruidDataSource的监控数据

      #useGlobalDataSourceStat: true 


----》在自己的项目pom.xml中加入 德鲁伊的jar依赖



  com.alibaba
  druid
  1.1.10


之后就是在项目中配置》》》》》》》》》》》如下:

在项目中新建config包在config包下建DataSource_0java Bean

package com.zwq.config;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;


@Configuration
@ConfigurationProperties(prefix="spring.datasource")
public class DataSource_0 {
private String url;
    private String username;
    private String password;
    private String driverClassName;
    private int initialSize;
    private int minIdle;
    private int maxActive;
    private int maxWait;
    private int timeBetweenEvictionRunsMillis;
    private int minEvictableIdleTimeMillis;
    private String validationQuery;
    private boolean testWhileIdle;
    private boolean testOnBorrow;
    private boolean testOnReturn;
    private boolean poolPreparedStatements;
    private int maxPoolPreparedStatementPerConnectionSize;
    private String filters;
    private String connectionProperties;
    
    @Bean(name="dataSource")
    public DataSource dataSource() {
    DruidDataSource datasource = new DruidDataSource();
    datasource.setUrl(url);
        datasource.setUsername(username);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);


        //configuration
        datasource.setInitialSize(initialSize);
        datasource.setMinIdle(minIdle);
        datasource.setMaxActive(maxActive);
        datasource.setMaxWait(maxWait);
        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        datasource.setValidationQuery(validationQuery);
        datasource.setTestWhileIdle(testWhileIdle);
        datasource.setTestOnBorrow(testOnBorrow);
        datasource.setTestOnReturn(testOnReturn);
        datasource.setPoolPreparedStatements(poolPreparedStatements);
        datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
        try {
            datasource.setFilters(filters);
        } catch (SQLException e) {
            System.err.println("druid configuration initialization filter: " + e);
        }
        datasource.setConnectionProperties(connectionProperties);
        return datasource;
    }
    
    
    
    
public String getUrl() {
return url;
}


public void setUrl(String url) {
this.url = url;
}


public String getUsername() {
return username;
}


public void setUsername(String username) {
this.username = username;
}


public String getPassword() {
return password;
}


public void setPassword(String password) {
this.password = password;
}


public String getDriverClassName() {
return driverClassName;
}


public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}


public int getInitialSize() {
return initialSize;
}


public void setInitialSize(int initialSize) {
this.initialSize = initialSize;
}


public int getMinIdle() {
return minIdle;
}


public void setMinIdle(int minIdle) {
this.minIdle = minIdle;
}


public int getMaxActive() {
return maxActive;
}


public void setMaxActive(int maxActive) {
this.maxActive = maxActive;
}


public int getMaxWait() {
return maxWait;
}


public void setMaxWait(int maxWait) {
this.maxWait = maxWait;
}


public int getTimeBetweenEvictionRunsMillis() {
return timeBetweenEvictionRunsMillis;
}


public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) {
this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
}


public int getMinEvictableIdleTimeMillis() {
return minEvictableIdleTimeMillis;
}


public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) {
this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
}


public String getValidationQuery() {
return validationQuery;
}


public void setValidationQuery(String validationQuery) {
this.validationQuery = validationQuery;
}


public boolean isTestWhileIdle() {
return testWhileIdle;
}


public void setTestWhileIdle(boolean testWhileIdle) {
this.testWhileIdle = testWhileIdle;
}


public boolean isTestOnBorrow() {
return testOnBorrow;
}


public void setTestOnBorrow(boolean testOnBorrow) {
this.testOnBorrow = testOnBorrow;
}


public boolean isTestOnReturn() {
return testOnReturn;
}


public void setTestOnReturn(boolean testOnReturn) {
this.testOnReturn = testOnReturn;
}


public boolean isPoolPreparedStatements() {
return poolPreparedStatements;
}


public void setPoolPreparedStatements(boolean poolPreparedStatements) {
this.poolPreparedStatements = poolPreparedStatements;
}


public int getMaxPoolPreparedStatementPerConnectionSize() {
return maxPoolPreparedStatementPerConnectionSize;
}


public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {
this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;
}


public String getFilters() {
return filters;
}


public void setFilters(String filters) {
this.filters = filters;
}


public String getConnectionProperties() {
return connectionProperties;
}


public void setConnectionProperties(String connectionProperties) {
this.connectionProperties = connectionProperties;
}
}

>>>>>>>>>>>>>>>至此完成









你可能感兴趣的:(SpringBoot内部集成Druid实现数据源加载)