Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring Boot中进行多URL映射(别名)_Java_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

Java 如何在Spring Boot中进行多URL映射(别名)

Java 如何在Spring Boot中进行多URL映射(别名),java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,具体的 我想在SpringBoot中进行多个URL映射(换句话说就是别名) 详细信息 在我的spring boot应用程序中 客户控制器类主要映射到/CustomerURL,如下所示,我想创建易于更改的别名 @Controller @RequestMapping(value = "/customer") public class CustomerController{ 在我的普通spring应用程序中,我在XML中进行映射,我可以如下所示进行URL映射 <bean class="org.

具体的

我想在SpringBoot中进行多个URL映射(换句话说就是别名)

详细信息

在我的spring boot应用程序中 客户控制器类主要映射到
/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" />


客户控制器
客户控制器
由于autoconfig在屋顶下工作,所以Spring引导、属性文件配置在大多数情况下都很有用

  • 是否有任何方法可以使用属性文件执行相同的操作
  • 在SpringBoot中进行URL映射时,遵循的最佳实践是什么?编译后,我可以很容易地更改URL映射
  • 我很累才找到这个。但最终还是得到了社会的帮助。请在这方面帮助我。

    看一个例子

    映射url的最佳方法是在带有注释的控制器中进行映射

    基本上:

    @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!";
            }
        }
    
    这样,URL看起来像:
    localhost:8080/Hello
    localhost:8080/Hello/otherMapping

    编辑:

    对于多个映射,您可以使用:

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

    如果要将映射从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{
    

    谢谢你的回答。我更新了我的问题。我需要做多个URL映射,比如别名。我希望在不重新编译的情况下更改别名映射。@FarajFarook请参阅更新。我帮不了你的忙,谢谢你,叶甫盖尼。非常感谢你的帮助。我赞成你的答案。但是我会等待更多的评论,看看是否有任何不重新编译的方法:)新的注释也可以工作:
    @GetMapping({/path1',“path2”})
    谢谢。法拉法鲁克说:“这似乎是一种更干净的方法。”。接受帮助他人和我:)