当前位置: 首页 > 知识库问答 >
问题:

spring@Aspect不能与swagger2一起工作

桑飞语
2023-03-14

pom.xml版本信息:

  • SpringFox-Swagger2:2.5.0
  • 昂首阔步-核心:1.5.10
  • springfox-swagger-ui:2.6.1
  • Springboot:1.5.3

我有一个项目与swagger2和Springboot。

没有@Aspect的项目代码工作得很好。

public interface TestApi {
    WfExecution test(Long temp);
}


@Api(value = "TestAPI")
@RequestMapping(value = "/test")
@RestController
public class TestApiImpl implements TestApi {

    @Override
    @RequestMapping(value = "/test")
    @ApiOperation(value = "", notes = "", produces = MediaType.APPLICATION_JSON)
    public WfExecution test(@ApiParam(value = "", required = true) @RequestParam(required = true, value = "temp")
                                        Long temp) {
        return new WfExecution();
    }
}

正确的结果:

但是当我添加以下代码时,swagger-ui没有显示test-api-impl。

@Aspect
@Component
public class LoggerAop {
    @Before("execution(* com.XXX.controller.impl.TestApiImpl.*(..))")
    public void doBeforeAdvice(JoinPoint joinPoint){
            System.out.println("XXX");
    }
}

swagger和spring AOP之间是否存在冲突?

共有1个答案

阎乐池
2023-03-14

@鸡蛋

我设置了类似的项目,并面临同样的问题。

在@EnableAspectJAutoProxy注释中将proxyTargetClass属性设置为true后,问题得到了解决。

引用Java Doc中EnableAspectJAutoProxy这个属性的用法。

用户可以使用{@link#proxytargetclass()}属性控制为{@code FooService}创建的代理的类型。与默认的基于接口的JDK代理方法相比,以下方法启用了CGLIB样式的“子类”代理。

 类似资料:
  • 我试图构建的是一个spring-boot(V1.2.3)应用程序,并使用SpringFox(swagger2)V2.0.0公开我的Rest API 我的大摇大摆的Spring配置 以下是如果不使用: 有没有一个解决方案来创建一个正确的、没有价值和逃避的大摇大摆的JSON?

  • 我使用的是Spring批处理版本2.2.4.Release,我试图用有状态的ItemReader、ItemProcessor和ItemWriter bean编写一个简单的示例。 在我的集成测试中,我在一个内部静态java配置类中声明bean,如下所示: 这个测试通过了。 但是,一旦我将StatefulItemReader定义为step范围的bean(这对于有状态的读取器更好),“Before st

  • 我有一个使用的自定义记录器,我希望它总是在最后一次运行,这样无论控制器返回什么响应,它都将被记录到数据库中(所以我在这个方面放了一个)。我还使用编写了一个错误处理程序,它处理所有意外的异常并返回,并带有自定义响应体,我希望日志记录器也记录它,因此我在它上添加了,但是看起来注释并没有在Spring方面和Spring ControllerAdvision之间安排顺序,那么如何让错误处理程序始终在日志记

  • 当结合使用HystrixCodaHaleMetricsPublisher和Graphite时,我遇到了一个奇怪的问题。已创建度量节点,但未输入任何数据。 我的配置:

  • 更新:Oook,首先,非常感谢。我不知道用户是postgres中的保留关键字。我把名字改成了CustomUser,但现在问题是另外一个了,应用程序可以工作,但我注意到它创建了一个名为custom_user的相同的CustomUser表,因为它没有使用现有的表? 我刚开始使用Springboot,我不明白我错在哪里。这是我的模型: 希望在您的帮助下,非常感谢大家。

  • 根据它的Javadoc,将生成,其中的第一个值是subscribe和第一个next信号之间的经过时间。 以下测试不起作用 它将抛出异常: 我原以为经过的时间至少是1000ms,但结果只有11ms。