具体
我想在spring boot
中进行多个URL映射(换句话说是别名)详情
在我的春季启动应用程序中
客户控制器类主要映射到/customer
网址,如下所示我想创建易于更改的别名
@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社区的帮助下结束了。请帮帮我。
答案 0 :(得分:15)
如果你想从支柱文件中推出映射,那么你可以按照下面这样做
在application.properties中,添加键值对
url.mapping : /test/sample
在控制器上,您可以执行以下操作:
@Controller
@RequestMapping(value = { "${url.mapping}" })
public class CustomerController{
如果您将url.mapping
作为jvm arg
提供,而不是提供支持文件,那么如果您更改了值,则不必重新编译,只需重新启动(我希望您可以做,自己没试过)应该做的伎俩。
对于多个映射,您必须为每个映射添加一个映射,并将其映射到控制器中,如下所示。
@Controller
@RequestMapping(value = { "${url.mapping}","${url.mapping.two}" })
public class CustomerController{
答案 1 :(得分:12)
看看this示例。
映射网址的最佳方法是在带注释的控制器中执行此操作。
基本上:
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
IMHO 最佳实践是为控制器使用一个映射,为每个方法使用一个映射:
@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" })