Java 为什么我的方面不';不行?
我想在出现Java 为什么我的方面不';不行?,java,spring,spring-aop,Java,Spring,Spring Aop,我想在出现@ValidPassword注释后在控制台中打印“Hell yeah”。我就是这样做的 注释: public @interface ValidPassword { } 方面: import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class ValidPasswordAspect { @Before("@annotati
@ValidPassword
注释后在控制台中打印“Hell yeah”。我就是这样做的
注释:
public @interface ValidPassword {
}
方面:
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class ValidPasswordAspect {
@Before("@annotation(ru.tenet.smsc.annotation.ValidPassword)")
public void myAdvice(){
System.out.println("Hell yeah");
}
}
xml:
org.springframework.security.core.context.SecurityContextHolder
setStrategyName
模式\可继承线程本地
/WEB-INF/db/hibernate.cfg.xml
org.hibernate.cfg.AnnotationConfiguration
假的
org.hibernate.dialen.oraclealent
真的
UTF-8
UTF-8
/WEB-INF/tiles.xml
用法:
@RequestMapping(value = "/sms/single", method = RequestMethod.GET)
@ValidPassword
public String singleSMSPage(Map<String, Object> map,
@ModelAttribute("singleSMSForm") SingleSMSForm singleSMSForm) {
map.put("title", "Отправка одного сообщения");
return "singleSMS";
}
@RequestMapping(value=“/sms/single”,method=RequestMethod.GET)
@有效密码
公共字符串SinglesMessage(映射,
@ModelAttribute(“SinglesForm”)SinglesForm SinglesForm{
地图放置(“标题”、“标题”、“标题”;
返回“单条短信”;
}
但控制台中没有“是的”。为什么?
aop:aspectj autoproxy
需要在您希望其作用的同一应用程序上下文中指定,这意味着您的控制器在哪里定义(或自动检测)
这是一个经常发生的错误,它不起作用的原因是方面检测和实现是
BeanPostProcessor
s工作的结果。和BeanPostProcessor
s在定义的应用程序上下文中起作用。在一个web应用程序中,通常有两个这样的应用程序上下文,很多时候是aop内容,事务性的,如果未在正确的应用程序上下文中定义此类行为,则自动连线可能会失败。您可以展示spring配置吗?aop:aspectj autoproxy
需要在您希望其作用的同一应用程序上下文中指定,这意味着您的控制器被定义(或自动检测)的位置@Tony您从未打开aop引擎:添加
和aop相关的头条目。它可以工作。把它写成一个答案。
@RequestMapping(value = "/sms/single", method = RequestMethod.GET)
@ValidPassword
public String singleSMSPage(Map<String, Object> map,
@ModelAttribute("singleSMSForm") SingleSMSForm singleSMSForm) {
map.put("title", "Отправка одного сообщения");
return "singleSMS";
}