java-在每次方法调用之前使用Spring invoke方法
作者:互联网
在每个方法调用bean之前,有什么方法可以调用方法吗?
我在春天用硒和黄瓜.因此,所有页面都是单例,并且由于我使用@FindBy批注,因此我想在每次使用页面时调用PageFactory.initElements(driver,object).
使用标准页面对象模式,可以通过在构造函数中调用它来完成.
我要避免的是在每个方法中指定如下所示的方法:
public void clickThis() {
PageFactory.initElements(driver, this)
...
}
public void clickThat() {
PageFactory.initElements(driver, this)
...
}
我不想返回新页面,因为它们将无法在功能之间共享.
解决方法:
Spring具有强大的AOP支持,您可以从中受益.
解决问题所需要做的就是.
>通过添加< aop:aspectj-autoproxy />在Spring中启用方面.在您的Spring配置文件中.
>创建一个简单的类并将其注册为Aspect.
资源:
<bean id="myAspect" class="some.package.MyFirstAspect">
<!-- possible properties ... for instance, the driver. -->
</bean>
MyFirstAspect类.请注意,该标记有@Aspect批注.在类中,您将必须创建一个方法并将其注册为@Before通知(建议在方法执行之前,之后或周围运行).
package some.package;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class MyFirstAspect {
@Before("execution(* some.package.SomeClass.*(..))")
public void initElements() {
//your custom logic that has to be executed before the `clickThis`
}
}
更多信息:
> Aspect Oriented Programming with Spring
标签:spring-aop,spring,java 来源: https://codeday.me/bug/20191030/1965224.html