springboot和Druid整合(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiajiajiazaijia/article/details/76436035

        之前使用的是默认的数据库连接。现在采用阿里的Druid连接池进行数据的操作。主要配置和前一篇文章差不多。主要修改了application.yml文件。同时增加了一个注入数据库连接池的类。实际上个人感觉springboot只是把以前需要配置的文件,改成了java类注入。

1.添加druid依赖

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

2.application.properties修改
        name=test
        spring.datasource.url=jdbc:mysql://localhost:3306/jiaxu
        spring.datasource.username=root
        spring.datasource.password=jiaxu123
        spring.datasource.driverClassName=com.mysql.jdbc.Driver
        type=com.alibaba.druid.pool.DruidDataSource
        filters=stat
        maxActive=20
        initialSize=1
        maxWait=60000
        minIdle=1
        timeBetweenEvictionRunsMillis=60000
        minEvictableIdleTimeMillis=300000
        validationQuery=select 'x'
        testWhileIdle=true
        testOnBorrow=false
        testOnReturn=false
        poolPreparedStatements=true
        maxOpenPreparedStatements=20
#mybatis
        mybatis.mapperLocations=classpath:mapper/*.xml



3.数据库注入类。借鉴别人的哟。主要是吧DataSource注入到sping容器中。

package com.cjx.firstSpringboot.dataSource;
import java.sql.SQLException;

import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;

@Configuration
public class DruidConfiguration {
    @Bean
    public ServletRegistrationBean druidServlet() {
        return new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    }

    @Bean
    public DataSource druidDataSource(@Value("${spring.datasource.driverClassName}") String driver,
                                      @Value("${spring.datasource.url}") String url,
                                      @Value("${spring.datasource.username}") String username,
                                      @Value("${spring.datasource.password}") String password) {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driver);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        try {
            druidDataSource.setFilters("stat, wall");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return druidDataSource;
    }

/*    //注入多个数据源
    @Bean  
    @Primary  
    @ConfigurationProperties(prefix="datasource.primary")  
    public DataSource primaryDataSource() {  
        return DataSourceBuilder.create().build();  
    }  
      
    @Bean  
    @ConfigurationProperties(prefix="datasource.secondary")  
    public DataSource secondaryDataSource() {  
        return DataSourceBuilder.create().build();  
    }  */
    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }
}

用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean。

问题:项目可以正常获取数据。蛋疼的是没有日志,也就是如果没有异常,访问正常的情况下conlse没有访问日志。可能是需要相应的日志包和配置。


猜你喜欢

转载自blog.csdn.net/jiajiajiazaijia/article/details/76436035