From 4bfdcd5fb77e08934cc451a2e2f0077b4989060b Mon Sep 17 00:00:00 2001 From: retire Date: Tue, 13 Mar 2018 16:28:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3druid=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jboot/db/datasource/DataSourceConfig.java | 11 +++++++++++ .../db/datasource/DruidDataSourceFactory.java | 8 ++++++++ src/main/java/io/jboot/web/JbootWebConfig.java | 9 +++++++++ .../io/jboot/web/handler/JbootHandler.java | 18 +++++++++++++++++- 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/jboot/db/datasource/DataSourceConfig.java b/src/main/java/io/jboot/db/datasource/DataSourceConfig.java index b371d639..bdec1c99 100644 --- a/src/main/java/io/jboot/db/datasource/DataSourceConfig.java +++ b/src/main/java/io/jboot/db/datasource/DataSourceConfig.java @@ -62,6 +62,9 @@ public class DataSourceConfig { private String table; //此数据源包含哪些表,这个配置会覆盖@Table注解的配置 private String exTable; //该数据源排除哪些表,这个配置会修改掉@Table上的配置 + //druid 过虑器 + private String filters = "stat,wall"; + /** * 是否需要添加到映射 * 在一个表有多个数据源的情况下,应该只需要添加一个映射就可以了, @@ -295,4 +298,12 @@ public class DataSourceConfig { public void setExTable(String exTable) { this.exTable = exTable; } + + public String getFilters() { + return filters; + } + + public void setFilters(String filters) { + this.filters = filters; + } } diff --git a/src/main/java/io/jboot/db/datasource/DruidDataSourceFactory.java b/src/main/java/io/jboot/db/datasource/DruidDataSourceFactory.java index 6b56e8f0..7459e92c 100644 --- a/src/main/java/io/jboot/db/datasource/DruidDataSourceFactory.java +++ b/src/main/java/io/jboot/db/datasource/DruidDataSourceFactory.java @@ -19,6 +19,7 @@ import com.alibaba.druid.pool.DruidDataSource; import com.google.common.collect.Sets; import javax.sql.DataSource; +import java.sql.SQLException; /** * @author Michael Yang 杨福海 (fuhai999@gmail.com) @@ -40,6 +41,13 @@ public class DruidDataSourceFactory implements DataSourceFactory { druidDataSource.setConnectionInitSqls(Sets.newHashSet(dataSourceConfig.getConnectionInitSql())); } + if(dataSourceConfig.getFilters()!=null){ + try { + druidDataSource.setFilters("stat,wall"); + } catch (SQLException e) { + } + } + return druidDataSource; } } diff --git a/src/main/java/io/jboot/web/JbootWebConfig.java b/src/main/java/io/jboot/web/JbootWebConfig.java index db0d7646..edbbcc14 100644 --- a/src/main/java/io/jboot/web/JbootWebConfig.java +++ b/src/main/java/io/jboot/web/JbootWebConfig.java @@ -38,6 +38,7 @@ public class JbootWebConfig { public static final String DEFAULT_COOKIE_ENCRYPT_KEY = "JBOOT_DEFAULT_ENCRYPT_KEY"; private String cookieEncryptKey = DEFAULT_COOKIE_ENCRYPT_KEY; + private String excludeUrl; public boolean isActionCacheEnable() { return actionCacheEnable; @@ -79,6 +80,14 @@ public class JbootWebConfig { this.cookieEncryptKey = cookieEncryptKey; } + public String getExcludeUrl() { + return excludeUrl; + } + + public void setExcludeUrl(String excludeUrl) { + this.excludeUrl = excludeUrl; + } + @Override public String toString() { return "JbootWebConfig {" + diff --git a/src/main/java/io/jboot/web/handler/JbootHandler.java b/src/main/java/io/jboot/web/handler/JbootHandler.java index 408cd4ed..f01ba8aa 100644 --- a/src/main/java/io/jboot/web/handler/JbootHandler.java +++ b/src/main/java/io/jboot/web/handler/JbootHandler.java @@ -17,9 +17,11 @@ package io.jboot.web.handler; import com.jfinal.handler.Handler; import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext; +import io.jboot.Jboot; import io.jboot.JbootConstants; import io.jboot.exception.JbootExceptionHolder; import io.jboot.web.JbootRequestContext; +import io.jboot.web.JbootWebConfig; import io.jboot.web.session.JbootServletRequestWrapper; import io.jboot.web.websocket.JbootWebsocketManager; @@ -29,11 +31,15 @@ import javax.servlet.http.HttpServletResponse; public class JbootHandler extends Handler { + private static JbootWebConfig webConfig = Jboot.config(JbootWebConfig.class); + @Override public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) { if (target.indexOf('.') != -1 || JbootWebsocketManager.me().isWebsokcetEndPoint(target)) { - return; + if (!isExclude(target)) { + return; + } } /** @@ -69,6 +75,16 @@ public class JbootHandler extends Handler { } + private boolean isExclude(String target) { + String[] excludeUrls = webConfig.getExcludeUrl().split(","); + for (String excludeUrl : excludeUrls) { + if (target.contains(excludeUrl)) { + return true; + } + } + return false; + } + private void doHandle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) { request.setAttribute(JbootConstants.ATTR_REQUEST, request); request.setAttribute(JbootConstants.ATTR_CONTEXT_PATH, request.getContextPath()); -- Gitee From 716ee4751e22a0d7021db15b82d05b7999d11fe5 Mon Sep 17 00:00:00 2001 From: retire Date: Tue, 13 Mar 2018 16:54:41 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3druid=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/io/jboot/web/handler/JbootHandler.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/io/jboot/web/handler/JbootHandler.java b/src/main/java/io/jboot/web/handler/JbootHandler.java index f01ba8aa..f62182b6 100644 --- a/src/main/java/io/jboot/web/handler/JbootHandler.java +++ b/src/main/java/io/jboot/web/handler/JbootHandler.java @@ -76,6 +76,11 @@ public class JbootHandler extends Handler { } private boolean isExclude(String target) { + + if(webConfig.getExcludeUrl()==null){ + return false; + } + String[] excludeUrls = webConfig.getExcludeUrl().split(","); for (String excludeUrl : excludeUrls) { if (target.contains(excludeUrl)) { -- Gitee From c962195354bc71f7e21ffcfc7bf3013653b7e8cf Mon Sep 17 00:00:00 2001 From: retireworker Date: Tue, 13 Mar 2018 20:37:58 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E5=96=84druid=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/io/jboot/web/JbootWebConfig.java | 10 ---------- .../io/jboot/web/handler/JbootHandler.java | 18 +----------------- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/src/main/java/io/jboot/web/JbootWebConfig.java b/src/main/java/io/jboot/web/JbootWebConfig.java index edbbcc14..56ec1532 100644 --- a/src/main/java/io/jboot/web/JbootWebConfig.java +++ b/src/main/java/io/jboot/web/JbootWebConfig.java @@ -38,8 +38,6 @@ public class JbootWebConfig { public static final String DEFAULT_COOKIE_ENCRYPT_KEY = "JBOOT_DEFAULT_ENCRYPT_KEY"; private String cookieEncryptKey = DEFAULT_COOKIE_ENCRYPT_KEY; - private String excludeUrl; - public boolean isActionCacheEnable() { return actionCacheEnable; } @@ -80,14 +78,6 @@ public class JbootWebConfig { this.cookieEncryptKey = cookieEncryptKey; } - public String getExcludeUrl() { - return excludeUrl; - } - - public void setExcludeUrl(String excludeUrl) { - this.excludeUrl = excludeUrl; - } - @Override public String toString() { return "JbootWebConfig {" + diff --git a/src/main/java/io/jboot/web/handler/JbootHandler.java b/src/main/java/io/jboot/web/handler/JbootHandler.java index f62182b6..6e6045c0 100644 --- a/src/main/java/io/jboot/web/handler/JbootHandler.java +++ b/src/main/java/io/jboot/web/handler/JbootHandler.java @@ -37,9 +37,7 @@ public class JbootHandler extends Handler { public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) { if (target.indexOf('.') != -1 || JbootWebsocketManager.me().isWebsokcetEndPoint(target)) { - if (!isExclude(target)) { - return; - } + return; } /** @@ -75,20 +73,6 @@ public class JbootHandler extends Handler { } - private boolean isExclude(String target) { - - if(webConfig.getExcludeUrl()==null){ - return false; - } - - String[] excludeUrls = webConfig.getExcludeUrl().split(","); - for (String excludeUrl : excludeUrls) { - if (target.contains(excludeUrl)) { - return true; - } - } - return false; - } private void doHandle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) { request.setAttribute(JbootConstants.ATTR_REQUEST, request); -- Gitee