Alibaba Druid连接池接入
maven引入
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.17</version> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.17</version> </dependency>?
配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: org.postgresql.Driverurl: jdbc:postgresql://10.0.0.189:5432/testusername: postgrespassword: test123druid:#初始化連接大小initial-size: 8#最小空閑連接數min-idle: 5#最大連接數max-active: 10#查詢超時時間query-timeout: 30000#事務查詢超時時間transaction-query-timeout: 30000#關閉空閑連接超時時間remove-abandoned-timeout: 1800filters: stat,config?
編寫測試
@Autowired JdbcTemplate jdbcTemplate; @GetMapping("test") public String test() {List<Map<String,Object>> list= jdbcTemplate.query("select * from os.auth_user limi t 10", new ResultSetExtractor<List<Map<String,Object>>>() {@Overridepublic List<Map<String, Object>> extractData(ResultSet rs) throws SQLException, DataAccessException {while (rs.next()){System.out.print("Column 1 returned ");System.out.println(rs.getString(1));}return null;}});return "1"; }?
注意:此處sql故意寫錯目的是為了報錯,顯示如下信息,標紅處可以看出走了druid
2019-06-18 14:20:05 14151 [http-nio-18081-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [select * from os.auth_user limi t 10]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "t"
位置:33] with root cause
org.postgresql.util.PSQLException: ERROR: syntax error at or near "t"
位置:33
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
……
at com.alibaba.druid.filter.FilterChainImpl.statement_executeQuery(FilterChainImpl.java:2831)
at com.alibaba.druid.filter.FilterAdapter.statement_executeQuery(FilterAdapter.java:2504)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeQuery(FilterChainImpl.java:2828)
at com.alibaba.druid.filter.FilterAdapter.statement_executeQuery(FilterAdapter.java:2504)
at com.alibaba.druid.filter.FilterEventAdapter.statement_executeQuery(FilterEventAdapter.java:302)
at com.alibaba.druid.filter.FilterChainImpl.statement_executeQuery(FilterChainImpl.java:2828)
at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.executeQuery(StatementProxyImpl.java:221)
at com.alibaba.druid.pool.DruidPooledStatement.executeQuery(DruidPooledStatement.java:296)
……
?
?
監控配置
注:監控只支持Servlet,不支持react
import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; 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;@Configuration public class DruidConfiguration {/*** 注冊Servlet信息, 配置監控視圖** @return*/@Bean@ConditionalOnMissingBeanpublic ServletRegistrationBean druidServlet() {ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");//白名單:servletRegistrationBean.addInitParameter("allow","192.168.6.195");//IP黑名單 (存在共同時,deny優先于allow) : 如果滿足deny的話提示:Sorry, you are not permitted to view this page.servletRegistrationBean.addInitParameter("deny","192.168.6.73");//登錄查看信息的賬號密碼, 用于登錄Druid監控后臺servletRegistrationBean.addInitParameter("loginUsername", "admin");servletRegistrationBean.addInitParameter("loginPassword", "admin");//是否能夠重置數據.servletRegistrationBean.addInitParameter("resetEnable", "true");return servletRegistrationBean;}/*** 注冊Filter信息, 監控攔截器** @return*/@Bean@ConditionalOnMissingBeanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();filterRegistrationBean.setFilter(new WebStatFilter());filterRegistrationBean.addUrlPatterns("/*");filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");return filterRegistrationBean;} }總結
以上是生活随笔為你收集整理的Alibaba Druid连接池接入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql函数和存储过程
- 下一篇: CentOS x64 安装gcc