Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 方法参数中带有HttpServletRequest的Spring引导的Swagger codegen delegatePattern_Spring Boot_Swagger_Pom.xml_Swagger Codegen - Fatal编程技术网

Spring boot 方法参数中带有HttpServletRequest的Spring引导的Swagger codegen delegatePattern

Spring boot 方法参数中带有HttpServletRequest的Spring引导的Swagger codegen delegatePattern,spring-boot,swagger,pom.xml,swagger-codegen,Spring Boot,Swagger,Pom.xml,Swagger Codegen,目前我有一个项目,它使用swagger-codegen-maven插件生成带有delegatePattern的swagger控制器 pom.xml: [...] <plugin> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>2.3.1</version&g

目前我有一个项目,它使用
swagger-codegen-maven插件
生成带有
delegatePattern
的swagger控制器

pom.xml

[...]
<plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
        <execution>
            <id>generate-api-v1</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/specs/v1.yaml</inputSpec>
                <language>spring</language>
                <apiPackage>test.foo.bar.v1</apiPackage>
                <modelPackage>test.foo.bar.v1.v1.model</modelPackage>
                <generateSupportingFiles>false</generateSupportingFiles>
                <configOptions>
                    <java8>true</java8>
                    <dateLibrary>java8</dateLibrary>
                    <delegatePattern>true</delegatePattern>
                    <useOptional>true</useOptional>
                    <useBeanValidation>true</useBeanValidation>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>
[...]
有可能做到这一点吗


干杯

不,但是您可以像这样将HttpServletRequest注入您的委托/类控制器:

public interface FooApi {

    FooDelegate getDelegate();

    @ApiOperation(value = "", nickname = "fooAction", notes = "", response = String.class)
    @ApiResponses(value = {
        @ApiResponse(code = 200, message = "Success", response = String.class)
    })
    @RequestMapping(value = "/fooAction",
        produces = { "text/plain" }, 
        method = RequestMethod.GET)
    default ResponseEntity<String> fooAction() {
        return getDelegate().fooAction();
    }

}
public interface FooApi {

    FooDelegate getDelegate();

    @ApiOperation(value = "", nickname = "fooAction", notes = "", response = String.class)
    @ApiResponses(value = {
        @ApiResponse(code = 200, message = "Success", response = String.class)
    })
    @RequestMapping(value = "/fooAction",
        produces = { "text/plain" }, 
        method = RequestMethod.GET)
    default ResponseEntity<String> fooAction(HttpServletRequest request) {
        return getDelegate().fooAction(request);
    }

}
public class FooApiController implements FooApi {
  private final HttpServletRequest httpServletRequest;

  @Autowired
  public FooApiController(HttpServletRequest httpServletRequest) {
    this.httpServletRequest = httpServletRequest;
  }

  @Override
  public ResponseEntity<String> fooAction() {
    // code here
  }
}
公共类FooApiController实现FooApi{
私有最终HttpServletRequest HttpServletRequest;
@自动连线
公共FooApiController(HttpServletRequestHttpServletRequest){
this.httpServletRequest=httpServletRequest;
}
@凌驾
公众反应行动{
//代码在这里
}
}

Spring知道HttpServletRequest的本质,它的作用域总是自动设置为request,而不是单例。因此,您将始终手头有当前请求。

否,但您可以将HttpServletRequest注入您的委托/类控制器,如下所示:

public interface FooApi {

    FooDelegate getDelegate();

    @ApiOperation(value = "", nickname = "fooAction", notes = "", response = String.class)
    @ApiResponses(value = {
        @ApiResponse(code = 200, message = "Success", response = String.class)
    })
    @RequestMapping(value = "/fooAction",
        produces = { "text/plain" }, 
        method = RequestMethod.GET)
    default ResponseEntity<String> fooAction() {
        return getDelegate().fooAction();
    }

}
public interface FooApi {

    FooDelegate getDelegate();

    @ApiOperation(value = "", nickname = "fooAction", notes = "", response = String.class)
    @ApiResponses(value = {
        @ApiResponse(code = 200, message = "Success", response = String.class)
    })
    @RequestMapping(value = "/fooAction",
        produces = { "text/plain" }, 
        method = RequestMethod.GET)
    default ResponseEntity<String> fooAction(HttpServletRequest request) {
        return getDelegate().fooAction(request);
    }

}
public class FooApiController implements FooApi {
  private final HttpServletRequest httpServletRequest;

  @Autowired
  public FooApiController(HttpServletRequest httpServletRequest) {
    this.httpServletRequest = httpServletRequest;
  }

  @Override
  public ResponseEntity<String> fooAction() {
    // code here
  }
}
公共类FooApiController实现FooApi{
私有最终HttpServletRequest HttpServletRequest;
@自动连线
公共FooApiController(HttpServletRequestHttpServletRequest){
this.httpServletRequest=httpServletRequest;
}
@凌驾
公众反应行动{
//代码在这里
}
}
Spring知道HttpServletRequest的本质,它的作用域总是自动设置为request,而不是单例。因此,您将始终手头有当前请求