问题描述
我正在尝试以与@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 (将#修改为@)