en particulier
Je veux faire un mappage d'URL multiple (en d'autres termes des alias) dans Spring Boot
en détail
Dans mon application Spring Boot Customer Controller la classe a mappé principalement sur le /customer
URL comme ci-dessous, je veux créer des alias facilement modifiables
@Controller
@RequestMapping(value = "/customer")
public class CustomerController{
Dans mon application Spring normale où je fais le mappage dans le XML, je peux faire le mappage d'URL comme ci-dessous.
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/customer.htm">customerController</prop>
<prop key="/tester.htm">customerController</prop>
</props>
</property>
</bean>
<bean id="customerController"
class="com. ... .controller.CustomerController" />
Spring boot, les configurations des fichiers de propriétés sont utiles la plupart du temps car la configuration automatique fonctionne sous le toit.
Je me suis beaucoup fatigué pour trouver ça. Mais à la fin, je me suis retrouvé dans l'aide de la communauté SO. Aidez-moi à ce sujet.
Si vous souhaitez chasser le mappage d'un fichier prop, vous pouvez le faire comme ci-dessous
Dans votre application.properties, ajoutez la paire valeur/clé
url.mapping : /test/sample
Sur le contrôleur, vous pouvez effectuer les opérations suivantes:
@Controller
@RequestMapping(value = { "${url.mapping}" })
public class CustomerController{
Au lieu de fournir dans le fichier prop, si vous fournissez le url.mapping
comme un jvm arg
, alors vous n'avez pas à recompiler si vous changez la valeur, il suffit de redémarrer (ce que j'espère que vous pouvez faire, je ne l'ai pas essayé moi-même) devrait faire l'affaire.
Pour plusieurs mappages, vous devrez en ajouter un par mappage et mapper cela dans le contrôleur comme ci-dessous.
@Controller
@RequestMapping(value = { "${url.mapping}","${url.mapping.two}" })
public class CustomerController{
Jetez un oeil à l'exemple this .
La meilleure façon de mapper l'url est de le faire dans le contrôleur avec des annotations.
Fondamentalement:
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
À mon humble avis, la meilleure pratique consiste à utiliser un mappage pour le contrôleur et un pour chaque méthode:
@RestController
@RequestMapping("/Hello")
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
@RequestMapping("/otherMapping")
public String otherMapping() {
return "Greetings from Spring Boot!";
}
}
De cette façon, les URL ressembleront à: localhost:8080/Hello
et localhost:8080/Hello/otherMapping
Modifier:
Pour plusieurs mappages, vous pouvez utiliser:
@RequestMapping({ "/home", "/contact" })