javaspringspring-mvcannotations

Spring: define @RequestMapping value in a properties file


Is it possible to define the value of a @RequestMapping annotation in Spring by defining it in a properties file?

Actually, I do something like:

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

But I would like to store the path /xxx in a properties file. Why? For instance, it is less likely that I do mystakes in my templates if I rename the path in the controller.

In other framework this is allowed (see Symfony, for instance).


Solution

  • It should be possible to use placeholders in @RequestMapping, like for example @RequestMapping("${foo.bar}"). Take a look at the documentation for more details:

    Patterns in @RequestMapping annotations support ${…​} placeholders against local properties and/or system properties and environment variables. This may be useful in cases where the path a controller is mapped to may need to be customized through configuration. For more information on placeholders, see the javadocs of the PropertyPlaceholderConfigurer class.