【datasource】druid monitor单独提出来

pull/3/head
fengshuonan 2021-01-24 11:42:38 +08:00
parent e6ea4a3621
commit cd33e36957
3 changed files with 65 additions and 49 deletions

View File

@ -1,17 +1,11 @@
package cn.stylefeng.roses.kernel.db.starter;
import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.db.api.expander.DruidConfigExpander;
import cn.stylefeng.roses.kernel.db.api.factory.DruidDatasourceFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.druid.DruidProperties;
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.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
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 org.springframework.context.annotation.Import;
@ -43,46 +37,4 @@ public class GunsDataSourceAutoConfiguration {
return DruidDatasourceFactory.createDruidDataSource(druidProperties);
}
/**
* Druid
*
* @author fengshuonan
* @date 2021/1/10 11:29
*/
@Bean
public ServletRegistrationBean<StatViewServlet> statViewServletRegistrationBean() {
ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>();
registrationBean.setServlet(new StatViewServlet());
registrationBean.addUrlMappings(DruidConfigExpander.getDruidUrlMappings());
registrationBean.addInitParameter("loginUsername", DruidConfigExpander.getDruidAdminAccount());
registrationBean.addInitParameter("loginPassword", DruidConfigExpander.getDruidAdminPassword());
registrationBean.addInitParameter("resetEnable", DruidConfigExpander.getDruidAdminResetFlag());
return registrationBean;
}
/**
* Druidurl
*
* @author fengshuonan
* @date 2021/1/10 11:45
*/
@Bean
public FilterRegistrationBean<WebStatFilter> webStatFilterRegistrationBean() {
FilterRegistrationBean<WebStatFilter> registrationBean = new FilterRegistrationBean<>();
WebStatFilter filter = new WebStatFilter();
registrationBean.setFilter(filter);
registrationBean.addUrlPatterns(DruidConfigExpander.getDruidAdminWebStatFilterUrlPattern());
registrationBean.addInitParameter("exclusions", DruidConfigExpander.getDruidAdminWebStatFilterExclusions());
registrationBean.addInitParameter("sessionStatEnable", DruidConfigExpander.getDruidAdminWebStatFilterSessionStatEnable());
registrationBean.addInitParameter("sessionStatMaxCount", DruidConfigExpander.getDruidAdminWebStatFilterSessionStatMaxCount());
if (StrUtil.isNotBlank(DruidConfigExpander.getDruidAdminWebStatFilterSessionName())) {
registrationBean.addInitParameter("principalSessionName", DruidConfigExpander.getDruidAdminWebStatFilterSessionName());
}
if (StrUtil.isNotBlank(DruidConfigExpander.getDruidAdminWebStatFilterPrincipalCookieName())) {
registrationBean.addInitParameter("principalCookieName", DruidConfigExpander.getDruidAdminWebStatFilterPrincipalCookieName());
}
registrationBean.addInitParameter("profileEnable", DruidConfigExpander.getDruidAdminWebStatFilterProfileEnable());
return registrationBean;
}
}

View File

@ -0,0 +1,63 @@
package cn.stylefeng.roses.kernel.db.starter;
import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.db.api.expander.DruidConfigExpander;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
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;
/**
* druid
*
* @author fengshuonan
* @date 2021/1/24 11:27
*/
@Configuration
public class GunsDruidMonitorAutoConfiguration {
/**
* Druid
*
* @author fengshuonan
* @date 2021/1/10 11:29
*/
@Bean
public ServletRegistrationBean<StatViewServlet> statViewServletRegistrationBean() {
ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>();
registrationBean.setServlet(new StatViewServlet());
registrationBean.addUrlMappings(DruidConfigExpander.getDruidUrlMappings());
registrationBean.addInitParameter("loginUsername", DruidConfigExpander.getDruidAdminAccount());
registrationBean.addInitParameter("loginPassword", DruidConfigExpander.getDruidAdminPassword());
registrationBean.addInitParameter("resetEnable", DruidConfigExpander.getDruidAdminResetFlag());
return registrationBean;
}
/**
* Druidurl
*
* @author fengshuonan
* @date 2021/1/10 11:45
*/
@Bean
public FilterRegistrationBean<WebStatFilter> webStatFilterRegistrationBean() {
FilterRegistrationBean<WebStatFilter> registrationBean = new FilterRegistrationBean<>();
WebStatFilter filter = new WebStatFilter();
registrationBean.setFilter(filter);
registrationBean.addUrlPatterns(DruidConfigExpander.getDruidAdminWebStatFilterUrlPattern());
registrationBean.addInitParameter("exclusions", DruidConfigExpander.getDruidAdminWebStatFilterExclusions());
registrationBean.addInitParameter("sessionStatEnable", DruidConfigExpander.getDruidAdminWebStatFilterSessionStatEnable());
registrationBean.addInitParameter("sessionStatMaxCount", DruidConfigExpander.getDruidAdminWebStatFilterSessionStatMaxCount());
if (StrUtil.isNotBlank(DruidConfigExpander.getDruidAdminWebStatFilterSessionName())) {
registrationBean.addInitParameter("principalSessionName", DruidConfigExpander.getDruidAdminWebStatFilterSessionName());
}
if (StrUtil.isNotBlank(DruidConfigExpander.getDruidAdminWebStatFilterPrincipalCookieName())) {
registrationBean.addInitParameter("principalCookieName", DruidConfigExpander.getDruidAdminWebStatFilterPrincipalCookieName());
}
registrationBean.addInitParameter("profileEnable", DruidConfigExpander.getDruidAdminWebStatFilterProfileEnable());
return registrationBean;
}
}

View File

@ -2,4 +2,5 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.stylefeng.roses.kernel.db.starter.GunsDataSourceAutoConfiguration,\
cn.stylefeng.roses.kernel.db.starter.GunsDruidPropertiesAutoConfiguration,\
cn.stylefeng.roses.kernel.db.starter.GunsMyBatisPlusAutoConfiguration,\
cn.stylefeng.roses.kernel.db.starter.GunsDbInitListenerAutoConfiguration
cn.stylefeng.roses.kernel.db.starter.GunsDbInitListenerAutoConfiguration,\
cn.stylefeng.roses.kernel.db.starter.GunsDruidMonitorAutoConfiguration