首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@在将返回结果绑定到Spring后,它不起作用

@在将返回结果绑定到Spring后,它不起作用
EN

Stack Overflow用户
提问于 2022-03-19 09:48:41
回答 1查看 293关注 0票数 1

以下是建议

代码语言:javascript
复制
@AfterReturning(
        pointcut = "execution(public java.util.List<me.mikholskiy.domains.Customer> me.mikholskiy.daos.CustomerDao.getAll())",
        returning = "resultList")
public void adviceBeforeGetAllCustomersFromDatabase(JoinPoint joinPoint,
                                                    List<Customer> resultList) {
    // ... 
}

因此,当我在没有returning参数的情况下使用这个通知注释时,它会像预期的那样工作。但是,当我想将返回结果绑定到这个建议时,什么都不会发生。它甚至没有被执行过。

以下是此建议的目标方法:

代码语言:javascript
复制
@Override
public List<Customer> getAll() {
    return sessionFactory.getCurrentSession()
        .createQuery("from Customer", Customer.class)
        .list();
}

我使用这个依赖项

代码语言:javascript
复制
org.springframework:spring-webmvc:5.3.17
org.springframework:spring-aspects:5.3.17
org.aspectj:aspectjweaver:1.9.7
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-19 12:05:49

无法匹配类型List<Customer>,因为子句还将匹配限制为只返回指定类型的值的方法执行(在本例中为__Object或其子类型,这将匹配任何返回值)。

因此,在您的代码中,而不是:

代码语言:javascript
复制
public void adviceBeforeGetAllCustomersFromDatabase(
    JoinPoint joinPoint, List<Customer> resultList) {
...

试着:

代码语言:javascript
复制
public void adviceBeforeGetAllCustomersFromDatabase(
    JoinPoint joinPoint, Object resultList) {
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71537092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档