diff --git a/contact-center/app/src/main/java/com/chatopera/cc/config/DruidConfiguration.java b/contact-center/app/src/main/java/com/chatopera/cc/config/DruidConfiguration.java index b7119d68..c64731b5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/config/DruidConfiguration.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/config/DruidConfiguration.java @@ -1,102 +1,99 @@ -/* - * Copyright (C) 2017 优客服-多渠道客服系统 - * Modifications copyright (C) 2018-2019 Chatopera Inc, - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.chatopera.cc.config; - -import com.alibaba.druid.support.http.StatViewServlet; -import com.alibaba.druid.support.http.WebStatFilter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.jdbc.DatabaseDriver; -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 javax.sql.DataSource; - -@Configuration -@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class) -@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true) -public class DruidConfiguration { - - @SuppressWarnings("unchecked") - protected T createDataSource(DataSourceProperties properties, - Class type) { - return (T) properties.initializeDataSourceBuilder().type(type).build(); - } - - /** - * @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解 - * @param properties 读入的配置 - * @return DruidDataSource - */ - @Bean - @ConfigurationProperties("spring.datasource.druid") - public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) { - - com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(properties, com.alibaba.druid.pool.DruidDataSource.class); - - DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl()); - - String validationQuery = databaseDriver.getValidationQuery(); - if (validationQuery != null) { - dataSource.setTestOnBorrow(true); - dataSource.setValidationQuery(validationQuery); - } - - return dataSource; - } - - - /** - * 注册一个StatViewServlet - * @return - */ - @Bean - public ServletRegistrationBean DruidStatViewServle2(){ - //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. - ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); - //添加初始化参数:initParams - //白名单: -// servletRegistrationBean.addInitParameter("allow","127.0.0.1"); - //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. -// servletRegistrationBean.addInitParameter("deny","192.168.1.73"); - //登录查看信息的账号密码. - servletRegistrationBean.addInitParameter("loginUsername","admin"); - servletRegistrationBean.addInitParameter("loginPassword","123456"); - //是否能够重置数据. - servletRegistrationBean.addInitParameter("resetEnable","false"); - return servletRegistrationBean; - } - - /** - * 注册一个:filterRegistrationBean - * @return - */ - - @Bean - public FilterRegistrationBean druidStatFilter2(){ - FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); - //添加过滤规则. - filterRegistrationBean.addUrlPatterns("/*"); - //添加不需要忽略的格式信息. - filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*"); - return filterRegistrationBean; - } -} \ No newline at end of file +/* + * Copyright (C) 2017 优客服-多渠道客服系统 + * Modifications copyright (C) 2018-2019 Chatopera Inc, + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chatopera.cc.config; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.support.http.StatViewServlet; +import com.alibaba.druid.support.http.WebStatFilter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DatabaseDriver; +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 +@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class) +@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true) +public class DruidConfiguration { + + @SuppressWarnings("unchecked") + protected T createDataSource(DataSourceProperties properties) { + return (T) properties.initializeDataSourceBuilder().type(DruidDataSource.class).build(); + } + + /** + * @param properties 读入的配置 + * @return DruidDataSource + * @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解 + */ + @SuppressWarnings("JavadocReference") + @Bean + @ConfigurationProperties("spring.datasource.druid") + public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) { + + com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(properties); + + DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl()); + + String validationQuery = databaseDriver.getValidationQuery(); + if (validationQuery != null) { + dataSource.setTestOnBorrow(true); + dataSource.setValidationQuery(validationQuery); + } + + return dataSource; + } + + + /** + * 注册一个StatViewServlet + */ + @Bean + public ServletRegistrationBean DruidStatViewServle2() { + //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. + ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); + //添加初始化参数:initParams + //白名单: +// servletRegistrationBean.addInitParameter("allow","127.0.0.1"); + //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. +// servletRegistrationBean.addInitParameter("deny","192.168.1.73"); + //登录查看信息的账号密码. + servletRegistrationBean.addInitParameter("loginUsername", "admin"); + servletRegistrationBean.addInitParameter("loginPassword", "123456"); + //是否能够重置数据. + servletRegistrationBean.addInitParameter("resetEnable", "false"); + return servletRegistrationBean; + } + + /** + * 注册一个:filterRegistrationBean + */ + + @Bean + public FilterRegistrationBean druidStatFilter2() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>(new WebStatFilter()); + //添加过滤规则. + filterRegistrationBean.addUrlPatterns("/*"); + //添加不需要忽略的格式信息. + filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*"); + return filterRegistrationBean; + } +} diff --git a/contact-center/app/src/main/resources/application-druid.properties b/contact-center/app/src/main/resources/application-druid.properties index 313057ca..c6ab3cc5 100644 --- a/contact-center/app/src/main/resources/application-druid.properties +++ b/contact-center/app/src/main/resources/application-druid.properties @@ -21,7 +21,7 @@ spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=100000 # \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2 #spring.datasource.druid.max-evictable-idle-time-millis= -spring.datasource.druid.filters=stat,wall,log4j +spring.datasource.druid.filters=stat,wall,slf4j # WebStatFilter\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.web-stat-filter.url-pattern=/*