Spring AOP +自定义注释+ SpEL

问题描述

我正在尝试以与@Cachable工具类似的方式在自定义注释中实现SpEL。

@Cacheable(cacheNames="books",key="#isbn.rawNumber")
public Book findBook(ISBN isbn,boolean checkWarehouse,boolean includeUsed)

这是我的代码示例:

自定义注释:

@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface StoreRequest {
    
    public boolean enable() default true;
    
    public String name() default "" ;

}

方面:

@Before("@annotation(storeRequest)")
public void saveRequest(JoinPoint ijoinPoint,StoreRequest storeRequest) {
    if (storeRequest.enable()) {
        System.out.println("Aspect in enabled for "+ storeRequest.name());
    } else {
            System.out.println("Aspect in disabled for "+ storeRequest.name();
    }

}

服务:

@Override
    @StoreRequest(name = "#name")
    public void aspectCheck(String name){
    ....
    ...
    ...
}

比方说,aspectCheck方法的参数值是BOB,这段代码显示为“为#name启用了方面”。我期望的是“启用BOB方面”。

现在,我知道Spel不能神奇地工作,我需要为自定义注释编写额外的代码行以实现SpEL。如果有人可以帮助我,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)