`
征途2010
  • 浏览: 248009 次
  • 性别: 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拦截器实现对404和500等错误的拦截

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

    springboot拦截器代码

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

    Spring AOP 拦截器 Advisor

    总的来说,Spring AOP 拦截器 Advisor 是一种强大的工具,它允许我们在不修改目标代码的情况下插入额外的行为。通过合理地定义 Advice 和 Pointcut,我们可以实现灵活的横切关注点,如日志、性能监控、事务管理和...

    mybatis拦截器修改执行sql语句

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

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

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

    【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不会被拦截--> <!--/...

    使用Spring MVC拦截器实现日志记录的方法

    例如,如果希望拦截器对所有的请求都生效,可以配置为`*" />`。而如果只想对特定路径的请求进行拦截,可以配置多个`<mvc:mapping>`标签分别指定不同的路径。在`<mvc:mapping>`标签内,通过`<bean>`标签定义具体的...

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

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

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

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

    Spring事务不生效.pdf

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

    spring MVC AOP注解方式如何拦截controller 例子

    在Spring中,我们可以使用AspectJ注解来声明切面,这些注解包括`@Aspect`、`@Before`、`@After`、`@Around`等,它们分别代表前置通知、后置通知、环绕通知等不同类型的拦截器。 1. **创建切面类** 首先,我们需要...

Global site tag (gtag.js) - Google Analytics