복붙노트

[SPRING] @RequestMapping에 사용자 정의 속성 값을 적용하는 방법

SPRING

@RequestMapping에 사용자 정의 속성 값을 적용하는 방법

나는 언젠가 "/ XXX"에서 "/ V100"로 바뀔 수있는 여러 가지 @RequestMapping을 가지고 있습니다. 그래서 속성에서 정의해야합니다. 내가 봤 거든 거기에 application.properties 사용하는 방법이 있지만 "/ XXX"값을 "local.properties"같은 사용자 정의 된 속성을 유지해야합니다. 사용자 정의 속성에서 @RequestMapping 값을 정의 할 수 있습니까?

@Controller
@RequestMapping("/XXX")
public class MyController {
...
}

** 업데이트 : 몇 시간을 시도하고 작동하도록하십시오.

my.properties

api.version=V100

mvc-context.xml

<context:property-placeholder ignore-unresolvable="true" location="/WEB-INF/config/property/my.properties"/>

제어 장치

@RequestMapping("/${api.version}")

바람둥이 통나무

localhost-startStop-1> [2016-04-28 15:01:35.410] [INFO] [RequestMappingHandlerMapping] [534] Mapped "{[/V100/detail],methods=[GET]}"...

해결법

  1. ==============================

    1.@JustinB가 제공 한 xml 솔루션 외에도 다음과 같은 주석 전용 솔루션 (Spring Boot로 테스트)이 있습니다.

    @JustinB가 제공 한 xml 솔루션 외에도 다음과 같은 주석 전용 솔루션 (Spring Boot로 테스트)이 있습니다.

    @Controller
    @PropertySource(value = "classpath:/user.properties", ignoreResourceNotFound = true)
    @RequestMapping("/${api.version:}")
    public class MyController {
    
    ...
    
    }
    

    api.version의 값은 If src / main / resources / user.properties (있는 경우)에서 읽습니다. 파일이 없거나 api.version이 설정되어 있지 않으면 빈 문자열이 기본값으로 사용됩니다.

    api.version이 application.properties에도 정의되어 있으면 user.properties가 있고 api.version이 설정되어 있는지 여부에 관계없이 우선 순위가 적용됩니다.

    @PropertySource의 더 많은 예제가 여기에 제공됩니다.

  2. from https://stackoverflow.com/questions/36885641/how-to-apply-user-defined-properties-value-to-requestmapping by cc-by-sa and MIT license