簡體   English   中英

如何在Spring Boot中執行多個URL映射(別名)

[英]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在屋頂下工作。

  1. 有什么辦法可以使用屬性文件做同樣的事情。
  2. 在spring boot中進行URL映射時要遵循的最佳做法是什么,我可以在編譯后輕松更改。

我累了很多才發現這個。 但最終在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/Hellolocalhost:8080/Hello/otherMapping

編輯:

對於多個映射,您可以使用:

@RequestMapping({ "/home", "/contact" })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM