Es posible definir el valor de una @RequestMapping anotación en la Primavera por definir en un archivo de propiedades?

De hecho, tengo que hacer algo como:

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

Pero me gustaría almacenar la ruta de acceso /xxx en un archivo de propiedades. Por qué? Por ejemplo, es menos probable que hago mystakes en mis plantillas si puedo cambiar el nombre de la ruta de acceso en el controlador.

En otro marco, lo que es permitido (véase Symfony, por ejemplo).

  • ¿@RequestMapping(System.getProperty("xxx.mapping.path", "/xxx"))
  • eso no va a funcionar. La anotación de valores de los parámetros deben ser constantes en tiempo de compilación
  • Yo simplemente quería decir que define static final de la variable y el uso que la variable de aquí.
InformationsquelleAutor JeanValjean | 2015-08-09

2 Comentarios

  1. 21

    Debería ser posible utilizar marcadores de posición en @RequestMapping, como por ejemplo @RequestMapping("${foo.bar}"). Echa un vistazo a la documentación para más detalles:

    Patrones en @RequestMapping anotaciones apoyo ${…​} marcadores de posición en contra de propiedades locales y/o propiedades del sistema y variables de entorno. Esto puede ser útil en los casos en que la trayectoria de un controlador se asigna a puede necesitar para ser personalizado a través de la configuración. Para obtener más información sobre los marcadores de posición, ver los javadocs de la PropertyPlaceholderConfigurer clase.

    • Me preguntaba acerca de algo como que (como se ha hecho en @Value), pero cuando traté de llamar en @RequestMapping una clave definida en la application.properties archivo, por ejemplo, mi.xx=/xxx, el IntelliJ Idea IDE informó el siguiente problema: Cannot resolve @PathVariable my.xx. Alguna idea?
    • Y funciona al ejecutar la aplicación? IntelliJ inspecciones no siempre son perfectas, por lo que este podría ser un falso positivo
    • Mi error, si puedo agregar la definición de la aplicación.archivo de propiedades, todo está bien. El problema es cuando trato de cargar la cadena desde otro archivo de propiedades. Tengo que encontrar una manera de leer de ella.
    • Hola, ¿has encontrado alguna manera de leer de otro archivo de propiedades?
  2. 0

    Thx por la ayuda. Es mi contribución…
    Dependencias No son necesarios, ya que maven hacer todo por sí mismo.

    En el archivo de propiedades de uso de maven de interpolación, como a continuación:

    vs= v1
    
    us= users
    me= messages
    
    url.user=${vs}/${us}
    url.mess=${vs}/${me}

    En su destino de archivo, por ejemplo un controlador/recursos (en mycase):

    @RestController
    //@RequestMapping("v1/users") <<<<<<instead this
    @RequestMapping("${url.user}")<<<<<<use this
    @Api(value = "API RESTFUL)
    public class UserResource {
    //

Dejar respuesta

Please enter your comment!
Please enter your name here