alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.9k stars 8.57k forks source link

springboot-druid 输入用户名密码之后又重复到login页面,还不报错 #2904

Open chengbaoxing1 opened 5 years ago

chengbaoxing1 commented 5 years ago

springboot-druid 输入用户名密码之后又重复到login页面,还不报错,请问这是怎么回事

chengbaoxing1 commented 5 years ago

基本配置如下: spring.datasource.type = com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size = 5 spring.datasource.druid.max-active = 20 spring.datasource.druid.min-idle = 5 spring.datasource.druid.max-wait = 60000 spring.datasource.druid.pool-prepared-statements = true spring.datasource.druid.max-pool-prepared-statement-per-connection-size = 20 spring.datasource.druid.max-open-prepared-statements = 20 spring.datasource.druid.validation-query = SELECT 1 spring.datasource.druid.validation-query-timeout = 30000 spring.datasource.druid.test-on-borrow = true spring.datasource.druid.test-on-return = false spring.datasource.druid.test-while-idle = false spring.datasource.druid.filters = stat,wall spring.datasource.druid.web-stat-filter.enabled = true spring.datasource.druid.connection-properties = druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 spring.datasource.druid.use-global-data-source-stat = true spring.jpa.show-sql = true spring.jpa.hibernate.naming.physical-strategy =org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

pom依赖:

com.alibaba druid-spring-boot-starter 1.1.10

基本配置类: @Configuration public class DruidConfig {

@Primary
@Bean(name = "dataSource")
@ConfigurationProperties("spring.datasource.druid")
public DataSource dataSourceOne() {
    return DruidDataSourceBuilder.create().build();
}

//配置Druid的监控
//1.配置一个管理后台的Servlet
@Bean
public ServletRegistrationBean statViewServlet() {
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    Map<String, String> initParas = new HashMap<>();
    initParas.put("loginUsername", "admin");//后台登录用户
    initParas.put("loginPassword", "admin");//后台登录密码
    initParas.put("allow", "");//默认允许所有访问
    servletRegistrationBean.setInitParameters(initParas);
    return servletRegistrationBean;
}

//2.配置一个监控的filter
@Bean
public FilterRegistrationBean webstatFilter() {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
    filterRegistrationBean.setFilter(new WebStatFilter());
    Map<String, String> initParas = new HashMap<>();
    initParas.put("exclusions", "*.js,*.css,/druid/*");//哪些文件不进行过滤

    filterRegistrationBean.setInitParameters(initParas);
    filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
    return filterRegistrationBean;
}

}

具体有什么问题吗?

DavidDingXu commented 5 years ago

升级到springboot2之后同样遇到这个问题额

Jonny023 commented 5 years ago

配置类,需配置@Bean(name = "dataSource", initMethod = "init", destroyMethod = "close")

@Bean(name = "dataSource", initMethod = "init", destroyMethod = "close")
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return new DruidDataSource()
    }
yanpeipan commented 4 years ago

druid监控使用的session存储登录,负载均衡时登录信息无法获取

ccran commented 4 years ago

负载均衡session问题,开启redis session共享可以解决。

<dependency>
           <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
 </dependency>