springboot 有关拦截器遇到的问题

摘要:
最近,搜索服务被修改。它最初是用ngx+lua编写的。虽然性能很高,但问题是可维护性不方便,而不是lua语言。原因是团队只有两名开发人员,另一名开发人员擅长Java。因此,我们计划将搜索服务移植到Java语言,并选择当前的spring boot,以便更多人能够维护该服务。

最近改造搜索服务,原来是用 ngx + lua 写的,虽然性能很高,带来的问题是可维护性不太方便,不是指lua语言方面,是因为团队就2个开发人员,另外一个开发人员的擅长语言是Java,于是准备将搜索服务移植于Java语言,选型了现在当下的springboot,这样就可以让更多的人更维护这个服务。

我也是刚学springboot,以前也是自己玩过SSM框架,把遇到问题记录下来:

在登录拦截器中出现的问题

1、拦截器的排除路径方法用了不生效

  springboot 有关拦截器遇到的问题第1张

  excludePathPatterns拦截不到,login换成 * 也不行, 于是将拦截路径的逻辑写在 LoginInterceptor() 中,这样就引发了第二个问题,因为 /search 是配置的项目路径前缀,需要动态,放在第二个问题中解决

  springboot 有关拦截器遇到的问题第2张

  通过路径对比,如果是无需校验的路径直接房型

2、@Value注解获取不到配置信息

   springboot 有关拦截器遇到的问题第3张

  通过request方法能获取到需要的信息

3、@Service注入的service使用时发现为null

  springboot 有关拦截器遇到的问题第4张

  如果发现为null,直接根据request的上下文获取

  

//解决service为null无法注入问题
        if (redisService == null) {
            BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
            redisService = (RedisService) factory.getBean("redisService");
        }

        String loginUserId = redisService.get(cacheKey);

  

免责声明:文章转载自《springboot 有关拦截器遇到的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#读取带命名空间的xml,xaml文件的解决方案boost.asio简单入坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一步步学习SpringBoot(一) 快速搭建一个web

适应读者 前端工程师(java系的公司) 前端架构师(java系的公司) java工程师 测试工程师(java系的公司) 什么是SpringBoot? Spring Boot便是一个社区反馈推动的项目. Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一。Spring Boot主要包含以下特性:直接嵌入Tom...

SpringBoot(3):SpringData 数据访问

一. 简介 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架;其主要目标是 使得对数据的访问变得方便快捷。对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库)。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库 Sping Data 官网:https://spri...

spring boot jpa

spring boot jpa 访问数据库的方式一般来说有两种,一种以Java Entity为中心,将实体和实体关系对应到数据库的表和表关系,例如Hibernate框架(Spring Data JPA由此实现);另一种以原生SQL为中心,更加灵活便捷,例如Mybatis。这里重点介绍下Spring Data JPA技术。 spring boot jpa介绍...

SpringBoot框架:快速入门搭建运行一个应用程序(一)

一、环境配置 Java环境:1.8版本 开发工具:IntelliJIDEA 二、简单应用 1、创建项目 选择创建的项目类型为Spring Initializr,Project SDK选择1.8版本的java: 选择java版本为8,作为一个入门的简单应用,暂时无需配置其他的项,直接Next即可: 勾选Web中的Spring Web选项,点击Next:...

SpringBoot进阶

  没想到把,SpringBoot虽然简化了开发流程,但要学的东西还有很多 1. Spring Boot简介 采用约定大于配置,简化Spring开发步骤与复杂的部署流程 快速创立可独立运行的Spring项目以及集成主流框架 嵌入式Servlet容器,无需打war包 starter自动依赖与版本控制 大量的自动配置,可修改默认值 需要xml,无代码生成,...

使用 Spring 3 来创建 RESTful Web Services(转)

使用 Spring 3 来创建 RESTful Web Services 在 Java™ 中,您可以使用以下几种方法来创建 RESTful Web Service:使用 JSR 311(311)及其参考实现 Jersey、使用 Restlet 框架和从头开始开发。Spring 是流行的 Java EE 应用开发框架,现在它的 MVC 层也支持 RE...