我有一个方面基于目标方法的细节进行各种计算,因此提前提取这些如下:
@Around("execution(* com.xyz.service.AccountService.*(..))")
public void validateParams(ProceedingJoinPoint joinPoint) throws Throwable {
final MethodSignature signature = (MethodSignature) joinPoint.getSignature();
final String methodName = signature.getName();
final String[] parameterNames = signature.getParameterNames();
final Object[] arguments = joinPoint.getArgs();
...
...
...
joinPoint.proceed();
}
Run Code Online (Sandbox Code Playgroud)
在提取的细节中,所有细节都反映了除了始终返回null的parameterNames之外的预期信息.我希望它按照下面的签名返回{accountDetails}.谁会知道我可能会遗漏什么,或者这是一个错误?
这是我正在反对的目标方法的签名:
Long createAccount(RequestAccountDetails accountDetails);
Run Code Online (Sandbox Code Playgroud) 我有几个wicket测试,它们针对可排序的DataTable,特别是ajax-单击可排序的列标题并断言渲染的主体行的内容.现在,表组件的后代的组件层次结构由wicket框架自动生成,并导致排序链接(ajax)的路径类似于:
table:topToolbars:toolbars:0:headers:1:header:orderByLink
Run Code Online (Sandbox Code Playgroud)
但是,当DataTable跨测试重新呈现时,工具栏组件的索引每次都会递增,即类似于:
table:topToolbars:toolbars:1:headers:1:header:orderByLink
Run Code Online (Sandbox Code Playgroud)
然后打破后续测试的硬编码路径,因为它们将不再匹配.
数据表构造的代码片段如下:
final PayeesProvider dataProvider = new PayeesProvider();
table = new DataTable<ResponsePayeeDetails>("payees", columns, dataProvider, rowsPerPage);
table.setOutputMarkupId(true);
table.addTopToolbar(new AjaxFallbackHeadersToolbar(table, dataProvider) {
private static final long serialVersionUID = -3509487788284410429L;
@Override
protected WebMarkupContainer newSortableHeader(final String borderId, final String property, final ISortStateLocator locator) {
return new AjaxFallbackOrderByBorder(borderId, property, locator, getAjaxCallDecorator()) {
@Override
protected void onRender() {
System.out.printf("Path: %s\n", this.getPageRelativePath());
super.onRender();
}
private static final long serialVersionUID = -6399737639959498915L;
@Override
protected void onAjaxClick(final AjaxRequestTarget target) {
target.add(getTable(), navigator, navigatorInfoContainer);
}
@Override …Run Code Online (Sandbox Code Playgroud)