Springboot配置druid数据源出现“localhost 将您重定向的次数过多”解决方案

hello,大家好!今天在跟着狂神学习springboot配置druid数据源的时候遇到一个报错浏览器上的报错,如图:

 在这里解决了好长时间,此外,去访问在controller类中设置的其他请求映射(@ResquestMapping())也是出现访问失败的情况,网上搜的答案说清除cookie什么的也没有用。于是我重新回到数据源配置类:

@Configuration
public class DruidConfig {
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidConfigs(){
       return new DruidDataSource();
    }
    //实现后台监控功能:web.xml
    @Bean
    public ServletRegistrationBean servletViewServlet(){
      ServletRegistrationBean<StatViewServlet> bean=new ServletRegistrationBean<>(new StatViewServlet());
 

        //后台需要有人登录,账号密码配置
        HashMap<String,String> initParameters=new HashMap<>();
        //增加配置
        initParameters.put("loginUsername","admin");//登录的key是固定的
        initParameters.put("loginPassword","12345");

        //允许谁可以访问
        initParameters.put("allow","");

        //禁止谁能访问 initParamters.put("kuangshen","192.168.11.123")
        bean.setInitParameters(initParameters);//设置初始话参数
        return bean;
    }

于是我查询了一下ServletRegistrationBean的相关资料:

项目中使用了spring-boot-starter-web依赖,spring-boot会在底层自动导入一个DispatchServlet
DispatcherServlet的默认匹配规则为/**
自定义的servlet如果加了urlPatters,则优先使用自定义的servlet,会使配置的拦截器也无法拦截,因为没有走dispatcherServlet的doDispatch方法

还有可能是因为使用servletRegistrationBean没有配置好专属的urlPatter所以失效,也就是说如果没有配置相应的urlmapping的话它默认将全部的url都拦截了下来,所以说在后面还需要加上一个urlmapping地址隐射,下面的配置才能固定工作。

加上下面这个:

ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*" );

再来尝试一下就可以成功访问到的后台监控功能:

 成功进入。希望这篇博客可以很好的帮助到你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值