如何在 Spring 引导中执行多个 URL 映射(别名)
How to do Multiple URL Mapping (aliases) in Spring Boot
具体
我想在 spring boot
中做多个 URL 映射(换句话说别名)
详细
在我的 spring 启动应用程序中
Customer Controller class 主要映射到 /customer
URL 如下 我想创建易于更改的别名
@Controller
@RequestMapping(value = "/customer")
public class CustomerController{
在我在 XML 中进行映射的正常 spring 应用程序中,我可以进行 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 引导,属性 文件配置在大多数情况下很有用,因为自动配置在屋顶下工作。
- 有什么方法可以使用 属性 文件来做同样的事情。
- 在 spring 引导中执行 URL 映射时,我可以在编译后轻松更改的最佳做法是什么。
我找这个很累。但最后还是得到了 SO 社区的帮助。请帮我解决这个问题。
看看 this 示例。
映射 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" })
如果你想从道具文件中驱动贴图,那么你可以按照下面的方式进行
在你application.properties,添加键值对
url.mapping : /test/sample
在控制器上您可以执行以下操作:
@Controller
@RequestMapping(value = { "${url.mapping}" })
public class CustomerController{
而不是在 prop 文件中提供,如果您将 url.mapping
作为 jvm arg
提供,那么如果您更改值,则不必重新编译,只需重新启动(我希望您可以做,我自己没有尝试过)应该可以解决问题。
对于多个映射,您必须为每个映射添加一个映射并在控制器中进行映射,如下所示。
@Controller
@RequestMapping(value = { "${url.mapping}","${url.mapping.two}" })
public class CustomerController{
具体
我想在 spring boot
中做多个 URL 映射(换句话说别名)详细
在我的 spring 启动应用程序中
Customer Controller class 主要映射到 /customer
URL 如下 我想创建易于更改的别名
@Controller
@RequestMapping(value = "/customer")
public class CustomerController{
在我在 XML 中进行映射的正常 spring 应用程序中,我可以进行 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 引导,属性 文件配置在大多数情况下很有用,因为自动配置在屋顶下工作。
- 有什么方法可以使用 属性 文件来做同样的事情。
- 在 spring 引导中执行 URL 映射时,我可以在编译后轻松更改的最佳做法是什么。
我找这个很累。但最后还是得到了 SO 社区的帮助。请帮我解决这个问题。
看看 this 示例。
映射 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" })
如果你想从道具文件中驱动贴图,那么你可以按照下面的方式进行
在你application.properties,添加键值对
url.mapping : /test/sample
在控制器上您可以执行以下操作:
@Controller
@RequestMapping(value = { "${url.mapping}" })
public class CustomerController{
而不是在 prop 文件中提供,如果您将 url.mapping
作为 jvm arg
提供,那么如果您更改值,则不必重新编译,只需重新启动(我希望您可以做,我自己没有尝试过)应该可以解决问题。
对于多个映射,您必须为每个映射添加一个映射并在控制器中进行映射,如下所示。
@Controller
@RequestMapping(value = { "${url.mapping}","${url.mapping.two}" })
public class CustomerController{