`
征途2010
  • 浏览: 246550 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring拦截器不生效

阅读更多

在平时休闲时间做一个学习型项目练手,在练习过程中,遇到一个spring拦截器不生效的问题,拦截器代码如下:

 

@Aspect
// 该注解标示该类为切面类
@Component
public class LogAopAction {
	
	@Autowired
	private LogDao logDao;

	@Around("execution(* com.lanyuan.service.impl.*.* (..))")
	public Object logAll(ProceedingJoinPoint point) {
        }
}

   被拦截对象如下:

 

@Transactional
@Service("storeService")
public class StoreServiceImpl implements StoreService {
    
    @Autowired
    private StoreDao storeDao;
    
 
    @Override
    public void add(Store store) {
   }
}

 但是如果直接调用是拦截不到的,因为采用了@Autowired注解,这个会自动装配javabean,

所以在没有生成代理类之前,就已经进行了装配,所以注入的实例为非代理类,所以无法拦截。

 

解决方案:

storeService = (StoreService) SpringContextUtil.getBean("storeService");

采用spring手动方式获取实例,在需要的时候获取代理类。

 

还有一种是使用延迟加载方式,这个需要用到lazy注解,大家可以查查网上资料。

 

分享到:
评论

相关推荐

    spring拦截器的简单例子

    在上面的配置中,`<mvc:interceptor>` 内的 `<mvc:mapping>` 定义了拦截器生效的 URL 路径,`<bean ref="myInterceptor">` 是我们之前创建的拦截器实例。 通过这样的配置,当请求匹配到指定路径时,Spring 就会调用...

    spring boot 登录拦截器

    最后,为了使拦截器生效,需要将其注册到Spring MVC的处理器链中。这可以通过在`WebMvcConfigurer`的实现类中重写`addInterceptors`方法来完成: ```java @Configuration public class WebConfig implements ...

    自己spring boot 拦截器

    为了使自定义拦截器生效,我们需要在Spring Boot的配置类中注册它: ```java import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation....

    SpringBoot的拦截器

    2. 配置拦截器:接下来,我们需要在Spring Boot的配置类中注册这个拦截器,让它生效。可以通过实现`WebMvcConfigurer`接口并覆盖`addInterceptors()`方法来完成。 ```java @Configuration public class ...

    spring-boot添加 拦截器

    在Spring Boot应用中,拦截器(Interceptor)是一种用于处理HTTP请求和响应的机制,它可以对请求进行预处理,也可以在请求...最后,通过`WebMvcConfigurer`接口将拦截器注册到Spring Boot应用中,指定其生效的URL路径。

    feign之间相互通信RequestInterceptor拦截器失效相关代码

    2. **作用域问题**:如果你的拦截器实例是prototype或non-singleton,那么每次请求可能会创建新的拦截器实例,导致拦截器逻辑没有生效。通常,RequestInterceptor应该是singleton作用域。 3. **请求链路问题**:...

    22. Spring Boot 拦截器HandlerInterceptor【从零开始学Spring Boot】

    通过上述配置,我们的自定义拦截器就生效了。需要注意的是,Spring Boot 2.x推荐使用`WebMvcConfigurer`而不是`WebMvcConfigurerAdapter`,因为后者在Spring Framework 5.0中已被废弃。 在实际项目中,我们可以根据...

    springboot拦截器代码

    为了让拦截器生效,我们需要将其注册到Spring MVC的配置中。在Spring Boot中,通常我们使用`WebMvcConfigurer`接口的扩展方法`addInterceptors`来注册拦截器: ```java import org.springframework.context....

    SpringBoot拦截器实现对404和500等错误的拦截

    为了让拦截器生效,还需要在SpringBoot的配置中注册它。在SpringBoot应用的配置类中,你可以使用`@Configuration`和`@EnableWebMvc`注解,并创建一个`WebMvcConfigurer`的实现类,重写`addInterceptors`方法,如下所...

    Mybatis拦截器记录数据更新历史记录到MongoDB

    为了使拦截器生效,我们需要在Mybatis的配置文件(通常为`mybatis-config.xml`)中注册这个拦截器。配置过程包括添加拦截器插件节点,并指定拦截器类和相关的属性。例如: ```xml <!-- 这里可以配置拦截器的...

    mybatis拦截器修改执行sql语句

    1.网上搜索了很多,几乎都是能修改sql, 但是修改后的sql不生效,还是执行原来的sql. 2.这个版本亲测可以生效。 3.支持分页查询

    【SpringMVC】 4.3 拦截器(csdn)————程序.pdf

    要使自定义的拦截器生效,需要在SpringMVC的配置文件中进行注册。在`<mvc:interceptors>`标签内添加`<bean>`标签,指定拦截器的bean名称。 ```xml **" /> ``` 4.3.3 多个拦截器的执行顺序 当有多个拦截...

    继承WebMvcConfigurationSupport后自动配置不生效及如何配置拦截器

    `addPathPatterns`指定了所有URL路径都将受到拦截器的影响,而`excludePathPatterns`则排除了一些不需要拦截的URL。对于静态资源的处理,`addResourceHandlers`方法用来指定资源处理器,`addResourceLocations`则...

    Spring mvc拦截器实现原理解析

    在Spring MVC的配置文件中,需要配置拦截器,以便拦截器生效。下面是一个简单的示例: ```xml <!--/ 包括路径及其子路径--> <!--/admin/* 拦截的是/admin/add等等这种 , /admin/add/user不会被拦截--> <!--/...

    详解利用SpringMVC拦截器控制Controller返回值

    为了使拦截器生效,我们需要在Spring MVC配置中注册它。在 `WebMvcConfigurer` 或者 `WebMvcConfigurerAdapter` 的实现类中添加拦截器。 ```java @Configuration @EnableWebMvc public class WebConfig implements ...

    SSM+Ajax+maven+拦截器实现登录功能

    7. **拦截器生效**:后续的受保护请求会被拦截器检查,未登录用户会被引导至登录页面。 以上就是SSM+Ajax+maven+拦截器实现登录功能的基本原理和步骤。通过这种方式,我们可以构建一个既高效又易于维护的登录系统。...

    Spring事务不生效.pdf

    通过理解以上这些常见问题,开发者可以更好地预防和解决Spring事务不生效的问题,确保应用的事务处理正常运行,保持数据的一致性和完整性。在实际开发中,细心检查和配置事务管理,避免潜在的陷阱,是保证系统稳定性...

    spring boot拦截器的使用场景示例详解

    一旦拦截器生效,我们可以在对应的页面或接口中获取并使用在拦截器中设置的属性。例如,从`HttpServletRequest`中获取`approveIds`,然后根据这些ID筛选显示的数据。 ### 5. 总结 Spring Boot拦截器是增强应用程序...

    spring_aop_拦截实例

    而`Pointcut`则定义了匹配的方法签名,决定了拦截器的生效范围。 例如,我们可以创建一个`Pointcut`来匹配所有标注了特定注解的公共方法,然后将这个`Pointcut`与我们的拦截器关联起来。这样,每当有匹配的方法被...

    ssm-拦截器.zip

    - 测试Controller,用于展示拦截器的生效。 - 可能还包含日志输出或测试用例,用于验证拦截器功能。 通过这个示例项目,你可以学习到如何在SSM框架中使用拦截器,以及如何将其应用于实际项目中解决特定问题。这不仅...

Global site tag (gtag.js) - Google Analytics