Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Java 如何在属性文件中使用贴图_Java_Spring_Spring Cloud - Fatal编程技术网

Java 如何在属性文件中使用贴图

Java 如何在属性文件中使用贴图,java,spring,spring-cloud,Java,Spring,Spring Cloud,如何将其映射到属性文件中 我正在努力追随春天的云之门 但是,我们使用application.properties spring: cloud: gateway: globalcors: corsConfigurations: '[/**]': allowedOrigins: "https://docs.spring.io" allowedMethods: - GET

如何将其映射到属性文件中

我正在努力追随春天的云之门

但是,我们使用application.properties

spring:
  cloud:
    gateway:
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins: "https://docs.spring.io"
            allowedMethods:
            - GET
我尝试过不同的变体,但都无济于事:

spring.cloud.gateway.globalcors.cors-configurations./**.allowed-origin
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowed-origin
我得到一个例外:

***************************应用程序无法启动


说明:

无法在下绑定属性 'spring.cloud.gateway.globalcors.cors配置。允许的来源' 到org.springframework.web.cors.cors配置:

Reason: No converter found capable of converting from type [java.lang.String] to type
[org.springframework.web.cors.corscoConfiguration]

行动:

更新应用程序的配置

请注意,此代码使用的是Spring Cloud Hoxton.M3。我知道有人可能会认为,根据Spring指南的已知实现可能是答案,但事实并非如此,因为SC网关不再使用HttpServlet

更新: 根据马可斯·巴贝罗的说法,这是可行的。显然,Eclipse不能将此数据类型理解为属性。现在,您必须处理忽略解析错误的问题

spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedOrigins=*
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedMethods=*
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowCredentials=true

无法使用属性文件设置这些属性。而是使用Spring配置设置这些属性,如下所示:

@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/test-javaconfig").allowedOrigins("http://localhost:9000");
            }
        };
    }

此外,post可能会有所帮助。

您不能使用属性文件设置这些属性。而是使用Spring配置设置这些属性,如下所示:

@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/test-javaconfig").allowedOrigins("http://localhost:9000");
            }
        };
    }

此外,post可能会有所帮助。

我没有尝试过,但我认为您可以这样使用它:

spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedOrigins="https://docs.spring.io"
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedMethods[0]=GET

如果它不起作用,请尝试从
[/**]
中删除方括号,导致
/**

我没有尝试过,但我认为您可以这样使用它:

spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedOrigins="https://docs.spring.io"
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedMethods[0]=GET


如果不起作用,请尝试从
[/**]
中删除方括号,从而导致
/**

此代码来自较旧的Spring Finchley代码。我用的是Hoxton.M3。这些类已经不存在了。在我共享的链接中,它也谈到了同样的内容。但关键是你必须使用CORS而不是属性的配置。我很抱歉。我不知道如何在Hoxton上做到这一点,否则我不会问这个问题。值得注意的是,在我过渡到SC网关之前,我的旧代码使用了CORSCOConfiguration。这导致启动期间出现NoClassDefinition例外,因为SC网关不再使用Http Web Servlet。此代码来自较旧的Spring Finchley代码。我用的是Hoxton.M3。这些类已经不存在了。在我共享的链接中,它也谈到了同样的内容。但关键是你必须使用CORS而不是属性的配置。我很抱歉。我不知道如何在Hoxton上做到这一点,否则我不会问这个问题。值得注意的是,在我过渡到SC网关之前,我的旧代码使用了CORSCOConfiguration。这导致启动期间出现NoClassDefinition例外,因为SC网关不再使用Http Web Servlet。能否在某处共享示例应用程序?:)您可以从Initializer(2.2.0)下载带有SC网关依赖项的密钥,只需将这些密钥添加到中。自从我开始工作以来,这一切都是赤裸裸的。奇怪的是,我刚刚开始了,应用程序在1.869秒内启动了
并启动了DemoApplication(JVM运行时间为2.447)
您是否在使用
Hoxton
作为Spring Cloud?我使用的是RC1,我已经添加了我在上面发布的密钥,可以在某处共享一个示例应用程序吗?:)您可以从Initializer(2.2.0)下载带有SC网关依赖项的密钥,只需将这些密钥添加到中。我刚开始的时候就非常简单。奇怪的是,我刚开始了,应用程序在1.869秒内启动了
并启动了DemoApplication(JVM运行时间为2.447)
您是否在使用
Hoxton
作为Spring Cloud?我使用的是RC1,我已经添加了上面发布的密钥,它起作用了。如果您对该行为持怀疑态度,可以在CorsConfiguration中为其中一个setter添加断点。如果您对该行为持怀疑态度,可以在CorsConfiguration中为其中一个setter添加断点企业配置。