spring aop配置未生效

声明一个注解

@Target({ElementType.METHOD})   
@Retention(RetentionPolicy.RUNTIME)   
@Documented
@Order(Ordered.HIGHEST_PRECEDENCE)
public @interface RequestLimit {
}

配置一个切面

@Aspect
@Component
public class RequestLimitAspect {
    
    @Resource
    private JdCloudRedisManager jdRedisManager;
    
    @Resource
    private JwStoreConfigDao jwStoreConfigDao;
    
    @Before(value="execution (* com.jw.store.controller.JwStoreController.*(..)) && @annotation(limit)")
    public void limitRequest(JoinPoint joinPoint, RequestLimit limit) throws Exception{
        if(getSwitch()) {
            Object[] args = joinPoint.getArgs();
            if(args==null || args.length == 0) {
                return;
            }
            HttpServletRequest request = null;
            for(int i=0; i<args.length; i++) {
                if(args[i] instanceof HttpServletRequest) {
                    request = (HttpServletRequest) args[i];
                    break;
                }
            }
            if (request == null) {
                return;
            }
            String clientIp = IpUtil.getIpAddr(request);
            String method_name =joinPoint.getSignature().getName();
            if (method_name != null && !method_name.equals("")) {
                executeLimitMethod(method_name, clientIp);
            }
        }
    }

配置aop动态代理

<!-- aop动态代理 -->
    <aop:aspectj-autoproxy proxy-target-class="false"/>

但死活没有运行aop, 通过各种查找,原来是动态代理配置需要配置到spring mvc xml文件中

原文地址:https://www.cnblogs.com/chenge-0401/p/8617525.html

时间: 2024-11-01 16:10:34

spring aop配置未生效的相关文章

12.Spring AOP配置与应用

两种方式: a)     使用Annotation b)     使用xml Annotation a)     加上对应的xsd文件spring-aop.xsd b)     beans.xml <aop:aspectj-autoproxy /> c)     此时就可以解析对应的Annotation了 d)     建立我们的拦截类 e)     用@Aspect注解这个类 f)      建立处理方法 g)     用@Before来注解方法 h)     写明白切入点(executio

Spring AOP配置中的问题aop:aspectj-autoproxy

(1)对于菜鸟来说,在Spring学习中可能会遇到各种各样的问题.下面就简单的写一下,我在学习Spring AOP配置中遇到的问题吧. 一般情况下,很多人都认为我们把spring framework中的所有jar包都加入到classpath中就OK了,在学习Ioc和Aop的时候就只剩下编程了,啥都不用管了. 其实不是这样的,对于以前的版本来说,可能所有用到的包都集成在一起了,但spring 技术的不断发展和扩大.完善.最终,好多模块都分家了,比如,在学习Ioc的时候我们基本上可以使用spring

Spring AOP配置-xml

基于xml的spring AOP配置主要有几个步骤: 1.创建切面类 编写自定义增强代码(如事务处理,日志等) 2.创建service 提供连接点 3.配置切面 在配置之前,先了解一些专业术语 连接点:被拦截的方法 切入点:拦截规则(符合规则被拦截的一类方法) 通知/增强:对拦截的方法添加自定义功能 切面:就是切面类,在其中自定义通知 编写切面类 //切面类 public class AspectClazz { public void save() { System.out.println("保

spring aop配置

注解方式 applicationContext.xml 加入下面配置 <!--Spring Aop 启用自动代理注解 --> <aop:aspectj-autoproxy proxy-target-class="true"/> LoggingAspect,java package com.lingdong.spring.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotati

spring aop 配置切面,记录系统异常存入log日志

1.spring.xml(这里主要配置了抛出异常后的操作after-throwing) 需要注意的地方以黄色标注,主要是几个切入点bean配置 <!-- 激活自动代理功能 --> <aop:aspectj-autoproxy proxy-target-class="true"/> <!-- 系统服务组件的切面Bean --> <bean id="aspectService" class="com.test.http

Java--简单的Spring AOP配置以及AOP事物管理,JDK/GCLib动态代理

一.看一下简单的通过XML的AOP配置 1.首先创建一个简单的Student类 public class Student { private Integer age; private String name; public void setAge(Integer age) { this.age = age; } public Integer getAge() { System.out.println("Age : " + age); return age; } public void

解决Spring AOP Controller 不生效

在spring-mvc.xml文件中,进行以下配置,就可以实现在Controller中, 方法一:最简单的,在spring-mvc.xml配置文件中,添加以下语句 spring-mvc.xml <!-- 激活自动代理功能 --> <aop:aspectj-autoproxy proxy-target-class="true"/> 以前,这句代码,我们放在了spring.xml中. 方法二:与方法一类似,也是在spring-mvc.xml配置文件中,添加以下语句

SpringBoot全局Jackson配置未生效

在做一个小项目,后台服务第一次用SpringBoot构建.接口使用Json格式,在application.properties中配置如下: spring.jackson.default-property-inclusion=NON_NULL spring.jackson.time-zone=GMT+8 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 测试,竟然没有生效,Json数据中依然有null的属性,日期依然是整形数字.在Bean中设置Jacks

spring AOP 配置

<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="add*