springboot添加druid步驟(兩種方案)

這幾天以來都是去學習如何去搭建一個項目的基本框架,然而並不是很順利,會遇到各種各樣的大小問題。今天把druid搭到我的框架裏面,剛開始並不是很順利,中途也遇到了一些問題,今天通過博客記錄我所遇到的問題,也給廣大老鐵們分享一下。

                                                 方案一

1、添加maven依賴(注意:添加依賴要注意一下,否則druid沒有sql記錄)

錯誤的依賴(其實並非是錯誤的依賴,下面依賴想要得到sql記錄也有處理的辦法,具體可以度娘,這裏就不具體說了)

運行結果並沒有相關的sql記錄:

正確的依賴:

運行結果有相關的sql記錄:

2、將druidxian相關的source添加到yml裏面

yml文件中要注意的一個地方:main:allow-bean-definition-overriding: true。在步驟一的添加依賴中,添加druid依賴是<artifactId>druid-spring-boot-starter</artifactId>,因爲版本原因(我的springboot是2.1.3),和springcloud版本不兼容,導致報錯:

Description:

The bean 'filterRegistrationBean', defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/stat/DruidWebStatFilterConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [com/aaron/config/DruidDBConfig.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

解決的辦法有兩個,第一種方法是降低pringboot的版本(由於我一開始就用2.1.3,爲了避免出現其他報錯,我就採取了第二種方法);第二種方法是,在yml文件中添加main:allow-bean-definition-overriding: true即可。

3、添加druid的config類文件

@Configuration
public class DruidDBConfig {

    @Bean
    public ServletRegistrationBean druidServlet() {
        ServletRegistrationBean reg = new ServletRegistrationBean();
        reg.setServlet(new StatViewServlet());
        reg.addUrlMappings("/druid/*");
        reg.addInitParameter("loginUsername", "druid");
        reg.addInitParameter("loginPassword", "123456");
        reg.addInitParameter("resetEnable", "false");
        return reg;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        Map<String, String> initParams = new HashMap<String, String>();
        initParams.put("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
        filterRegistrationBean.setInitParameters(initParams);
        filterRegistrationBean.addUrlPatterns("/*");
        return filterRegistrationBean;
    }

4、運行

運行springboot的啓動文件,訪問http://127.0.0.1:8080/druid/index.html,通過單元測試,即可在druid中看到相關的數據。

 

                                                 方案二

1、添加maven依賴(步驟如上述方案一)

2、添加druid的屬性類文件(本類中通過Lombok註解處理)

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@ConfigurationProperties(prefix = "druid")
public class Druid {
    private String url;
    private String username;
    private String password;
    private String driverClass;

    private int maxActive;
    private int minIdle;
    private int initialSize;
    private boolean testOnBorrow;
}

3、添加druid相關的配置類

@Configuration
@EnableConfigurationProperties(Druid.class)
@ConditionalOnClass(DruidDataSource.class)
@ConditionalOnProperty(prefix = "druid", name = "url")
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
public class DruidAutoConfig {
    @Autowired
    private Druid properties;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(properties.getUrl());
        dataSource.setUsername(properties.getUsername());
        dataSource.setPassword(properties.getPassword());
        if (properties.getInitialSize() > 0) {
            dataSource.setInitialSize(properties.getInitialSize());
        }
        if (properties.getMinIdle() > 0) {
            dataSource.setMinIdle(properties.getMinIdle());
        }
        if (properties.getMaxActive() > 0) {
            dataSource.setMaxActive(properties.getMaxActive());
        }
        dataSource.setTestOnBorrow(properties.isTestOnBorrow());
        try {
            dataSource.init();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return dataSource;
    }
}

4、在application文件中添加相關配置

spring:
  profiles:
    active: test
    #連接池配置
    druid:
      url: jdbc:mysql://localhost:3306/springboottest?characterEncoding=UTF-8@&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
      # 帳號
      username: druid
      # 密碼
      password: druid
      # 初始化大小,最小,最大
      initial-size: 5
      min-idle: 1
      max-active: 100
      test-on-borrow: true

5、測試

運行springboot的啓動文件,訪問http://127.0.0.1:8080/druid/index.html,通過單元測試,即可在druid中看到相關的數據。

上述就是springboot整合druid的相關步驟,有疑問或者文章中有錯誤的地方,望老鐵指正。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章