2

@RequestMappingいつか「/XXX」から「/V100」に変更される可能性のある値がいくつかあります。したがって、プロパティで定義する必要があります。私はググって、application.propertiesを使用する方法がありますが、「local.properties」のようなユーザー定義のプロパティに「/ XXX」の値を保持する必要があります。@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}")

tomcat ログ

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

1 に答える 1

2

@JustinB が提供する xml ソリューションに加えて、注釈のみのソリューションを次に示します (Spring Boot でテスト済み)。

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

...

}

If src/main/resources/user.propertiesが存在する場合は、そこから値api.versionが読み取られます。ファイルが見つからないか、設定されていない場合は、デフォルトで空の文字列になります。api.version

がapplication.propertiesapi.versionにも定義されている場合は、 user.propertiesが存在し、そこに設定されているかどうかにかかわらず優先されることに注意してください。api.version

@PropertySource のその他の例は、こちらで提供されています

于 2016-04-28T13:15:36.780 に答える