7
votes

Pouvons-nous utiliser des expressions de printemps (spel) dans d'autres annotations?

Je veux pouvoir faire ceci: XXX

Cela ne semble pas fonctionner maintenant, je manque quelque chose?


1 commentaires

Pour clarifier, l'expression spel fonctionne simplement avec l'annotation @Value pour définir la valeur de "Resource_folder", mais elle ne fonctionnera pas dans l'annotation @RequestMapping


3 Réponses :


2
votes

Une façon, vous pouvez découvrir des choses comme ceci est de regarder vous-même. Ceci est un exemple d'éclipse, mais il devrait fonctionner de la même manière que d'autres IDes:

Tout d'abord, assurez-vous de disposer des sources des bibliothèques de printemps que vous utilisez. C'est plus facile si vous utilisez Maven, Utilisation du Maven-Eclipse-plugin ou en utilisant m2eclipse .

alors, dans Eclipse Sélectionnez Navigate -> Type ouvert ... . Entrez le type que vous recherchez (quelque chose comme requestma * devrait faire pour des typeurs paresseux comme moi). Entrée / ok. Maintenant, cliquez avec le bouton droit de la souris sur le nom de la classe dans le fichier source et sélectionnez Références -> Projet . Dans la vue de recherche, toutes les utilisations de cette classe ou d'annotation apparaîtront.

L'un d'entre eux est DefaulSannotationHandmsforhandlerlemethods (classe, Boolean) , où cet extrait de code vous dira que la langue d'expression n'est pas évaluée: xxx

N'oubliez pas, c'est appelé open source. Il ne sert à rien d'utiliser un logiciel open source si vous n'essayez pas de comprendre ce que vous utilisez.


3 commentaires

Merci pour la réponse, mais s'il vous plaît sauvegarder votre abandon, vous n'avez aucune idée de ce qu'une affiche a essayé ou non


@chris vrai, et ne prenez pas cela personnellement, non plus. Les réponses sont donc ciblées à un public plus large que l'op. Je faisais une observation générale qui était peut-être injustifiée dans votre cas


dernière ligne = or pur. !!!



-3
votes

@san a répondu à la question de savoir si le printemps a soutenu cela, mais je souhaitais également répondre à la question de simplement en quoi de ne pas dupliquer la configuration lors de l'utilisation d'annotations. Il est possible que cela soit possible à l'aide des importations statiques, comme dans: xxx


0 commentaires

2
votes

Répondre en 2020: Avec les versions de ressort actuelles, les expressions spel peuvent être utilisées dans @RQuestMapping annotations. Ils sont correctement analysés.

Détails intérieurs:

DemandeMappantHermapping Appels EmbeddedValueresolver # ResolvestringValue.
Javadoc de IncréddedValueresolver indique les éléments suivants:

Adaptateur StringValueresolver pour résoudre les espaces réservés et les expressions contre un configurableBeanFactory. Notez que cet adaptateur résout expressions aussi, contrairement à la ConfigurableBeanFactory.ResveMeDeDeDeDedDedValue. le BeanexpressionContext utilisé est destiné à l'usine de haricots ordinaires, sans Portée spécifiée pour tout objet contextuel à accéder.

Depuis: 4.3

Cela signifie que les deux espaces réservés ordinaires (par exemple $ {my.property} ) et les expressions spel seront analysées.

Notez que, étant donné que les espaces réservés habituels sont analysés par rapport aux expressions et spelles sont analysées plus tard, il est même possible de définir la valeur d'une propriété sur une expression spel. Le printemps remplacera d'abord l'espace réservé avec la valeur de la propriété (expression spel), puis analyser l'expression spel.


0 commentaires