SpringBoot Druid整合,SpringBoot 集成Druid

SpringBoot Druid整合,SpringBoot 集成Druidcss

 

================================java

©Copyright 蕃薯耀 2018年4月8日mysql

http://www.cnblogs.com/fanshuyao/web

 

源代碼下載見:http://fanshuyao.iteye.com/blog/2415353spring

 

1、SpringBoot引入Druid的依賴包sql

Xml代碼   收藏代碼
  1. <dependency>  
  2.   <groupId>mysql</groupId>  
  3.   <artifactId>mysql-connector-java</artifactId>  
  4.   <scope>runtime</scope>  
  5. </dependency>  
  6.           
  7. <dependency>  
  8.   <groupId>com.alibaba</groupId>  
  9.   <artifactId>druid</artifactId>  
  10.   <version>1.1.9</version>  
  11. </dependency>  

 

2、設置配置文件application.properties數據庫

Java代碼   收藏代碼
  1. spring.datasource.url=jdbc:mysql://192.168.1.166:3306/study  
  2. spring.datasource.driver-class-name=com.mysql.jdbc.Driver  
  3. spring.datasource.username=root  
  4. spring.datasource.password=root  
  5. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource  
  6. #spring.datasource.schema=  
  7.   
  8. #數據源其餘配置,須要增長Druid的配置類(否則不生效)  
  9. #配置見:com.lqy.springboot.datasource.druid.DruidConfig  
  10. spring.datasource.initialSize=5  
  11. spring.datasource.minIdle=5  
  12. spring.datasource.maxActive=20  
  13. spring.datasource.maxWait=60000  
  14. spring.datasource.timeBetweenEvictionRunsMillis=60000  
  15. spring.datasource.minEvictableIdleTimeMillis=300000  
  16. spring.datasource.validationQuery=SELECT 1 FROM DUAL  
  17. spring.datasource.testWhileIdle=true  
  18. spring.datasource.testOnBorrow=false  
  19. spring.datasource.testOnReturn=false  
  20. spring.datasource.poolPreparedStatements=true  
  21. #配置監控統計攔截的filters,去掉後監控界面sql沒法統計,'wall'用於防火牆    
  22. spring.datasource.filters=stat,wall,log4j  
  23. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20  
  24. spring.datasource.useGlobalDataSourceStat=true    
  25. spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500  

 

3、增長Druid自定義配置類瀏覽器

爲何要增長呢?springboot

由於SpringBoot自己提供的配置只是部分的數據庫鏈接配置,不少Druid須要的屬性配置是沒有的,如:app

Java代碼   收藏代碼
  1. spring.datasource.initialSize  

 這個屬性,SpringBoot是沒有的,只有Druid纔有,因此須要增長相應的配置類,自動注入。

 

DruidConfig 類

Java代碼   收藏代碼
  1. import java.util.Arrays;  
  2. import java.util.HashMap;  
  3. import java.util.Map;  
  4.   
  5. import javax.sql.DataSource;  
  6.   
  7. import org.springframework.boot.context.properties.ConfigurationProperties;  
  8. import org.springframework.boot.web.servlet.FilterRegistrationBean;  
  9. import org.springframework.boot.web.servlet.ServletRegistrationBean;  
  10. import org.springframework.context.annotation.Bean;  
  11. import org.springframework.context.annotation.Configuration;  
  12.   
  13. import com.alibaba.druid.pool.DruidDataSource;  
  14. import com.alibaba.druid.support.http.StatViewServlet;  
  15. import com.alibaba.druid.support.http.WebStatFilter;  
  16.   
  17. /** 
  18.  * 導入druid數據源,擴展相關的配置屬性 
  19.  * 
  20.  */  
  21. @Configuration  
  22. public class DruidConfig {  
  23.   
  24.     /** 
  25.      * 配置Druid的屬性,和DataSource進行綁定,前綴設置爲:spring.datasource 
  26.      * 不配置的話,不少初始化的屬性是沒有綁定的 
  27.      * @return 
  28.      */  
  29.     @Bean  
  30.     @ConfigurationProperties(prefix="spring.datasource")  
  31.     public DataSource druid() {  
  32.         return new DruidDataSource();  
  33.     }  
  34.       
  35.     /** 
  36.      * 配置druid監控 
  37.      * 配置一個管理後臺的servlet 
  38.      * 訪問地址:http://localhost:8080/druid/ 
  39.      * @return 
  40.      */  
  41.     @Bean  
  42.     public ServletRegistrationBean statViewServlet() {  
  43.         ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");  
  44.         Map<String, String> initParameters = new HashMap<String, String>();  
  45.         initParameters.put("loginUsername", "admin");//屬性見:com.alibaba.druid.support.http.ResourceServlet  
  46.         initParameters.put("loginPassword", "123456");  
  47.         initParameters.put("allow", "");//默認容許全部  
  48.         initParameters.put("deny", "");  
  49.         bean.setInitParameters(initParameters);  
  50.         return bean;  
  51.     }  
  52.       
  53.     /**  
  54.      * 配置一個web監控的filter  
  55.      * @return  
  56.      */  
  57.     @Bean  
  58.     public FilterRegistrationBean webStatFilter() {  
  59.         FilterRegistrationBean filterBean = new FilterRegistrationBean();  
  60.         filterBean.setFilter(new WebStatFilter());  
  61.         filterBean.setUrlPatterns(Arrays.asList("/*"));  
  62.           
  63.         Map<String, String> initParameters = new HashMap<String, String>();  
  64.         initParameters.put("exclusions", "*.js,*.css,/druid/*");//屬性見:com.alibaba.druid.support.http.WebStatFilter  
  65.         filterBean.setInitParameters(initParameters);  
  66.           
  67.         return filterBean;  
  68.     }  
  69.       
  70.       
  71. }  

 

 4、啓動項目,測試數據源鏈接:

Java代碼   收藏代碼
  1. import java.sql.Connection;  
  2. import java.sql.SQLException;  
  3.   
  4. import javax.sql.DataSource;  
  5.   
  6. import org.springframework.beans.factory.annotation.Autowired;  
  7. import org.springframework.web.bind.annotation.RequestMapping;  
  8. import org.springframework.web.bind.annotation.RestController;  
  9.   
  10. @RestController  
  11. public class DataSourceController {  
  12.   
  13.     @Autowired  
  14.     private DataSource dataSource;  
  15.       
  16.     @RequestMapping("/dataSource")  
  17.     public String dataSource() {  
  18.         try {  
  19.             System.out.println("dataSource = "+dataSource);  
  20.             Connection conn = dataSource.getConnection();  
  21.             System.out.println("conn = "+conn);  
  22.             return "success";  
  23.         } catch (SQLException e) {  
  24.             e.printStackTrace();  
  25.         }  
  26.         return "end.";  
  27.     }  
  28.       
  29.       
  30. }  

 

5、查看Druid的監控

瀏覽器打開:http://localhost:8080/druid

登陸的帳號密碼在DruidConfig類配置有

 

(若是你以爲文章對你有幫助,歡迎捐贈,^_^,謝謝!) 

================================

©Copyright 蕃薯耀 2018年4月8日

http://www.cnblogs.com/fanshuyao/

相關文章
相關標籤/搜索