[英]How to do Multiple URL Mapping (aliases) in Spring Boot
具體而言
我想在spring boot中進行多URL映射(換句話說別名)
詳細地
在我的Spring啟動應用程序中, Customer Controller類主要映射到/customer
URL,如下所示我想創建易於更改的別名
@Controller
@RequestMapping(value = "/customer")
public class CustomerController{
在我正常的spring應用程序中,我在XML中進行映射,我可以進行如下的URL映射。
<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,屬性文件配置在大多數情況下是有用的,因為autoconfig在屋頂下工作。
我累了很多才發現這個。 但最終在SO社區的幫助下結束了。 請幫幫我。
如果您想要從prop文件中驅動映射,那么您可以執行以下操作
在application.properties中,添加鍵值對
url.mapping : /test/sample
在控制器上,您可以執行以下操作:
@Controller
@RequestMapping(value = { "${url.mapping}" })
public class CustomerController{
如果您將url.mapping
作為jvm arg
提供,而不是提供prop文件,那么如果更改值,則不必重新編譯,只需重新啟動(我希望您可以這樣做,我自己沒有嘗試過)應該做的伎倆。
對於多個映射,您必須為每個映射添加一個映射,並在控制器中映射,如下所示。
@Controller
@RequestMapping(value = { "${url.mapping}","${url.mapping.two}" })
public class CustomerController{
看看這個例子。
映射網址的最佳方法是在帶注釋的控制器中執行此操作。
基本上:
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
恕我直言最佳做法是為控制器使用一個映射,為每個方法使用一個映射:
@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!";
}
}
那樣的網址看起來像: localhost:8080/Hello
和localhost:8080/Hello/otherMapping
編輯:
對於多個映射,您可以使用:
@RequestMapping({ "/home", "/contact" })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.