
2.4 配置访问路径
在实际的项目开发中,控制器的路径可能会有许多个。在进行控制器编写的时候,也会有以下两种运行模式。
控制器跳转模式:可以使用@Controller注解定义,如果要实现Restful显示,也可以联合@ResponseBody注解一起使用。
Restful显示:可以使用@RestController注解,里面所有路径访问的信息都以Restful形式展示。
1.【mldnboot-base项目】定义MessageController控制器程序类,使用Restful风格显示。

此时的控制器程序类上使用了@RestController注解,这样就可以避免在方法上使用@ResponseBody注解。此时,MessageController类中的所有映射路径都会以Restful形式展示。
提示:Restful是SpringCloud技术的实现核心。
在控制器里面一旦使用了@RestController注解,则意味着所有方法都将以Restful风格展示。这种做法未必适合于SpringBoot项目,因为在很多时候需要通过控制器跳转到显示层页面,而Restful是SpringCloud技术的实现关键。
2.【mldnboot-base项目】前面定义的控制器类只能进行简单的信息返回,实际上也可以进行参数的接收处理。传递参数到控制器中最简单的做法是使用地址重写传递“访问路径?参数名称=内容”,在MessageController控制器程序类之中扩充一个新的echo()方法。

此时如果要进行该路径的访问,则可以直接通过地址栏传递参数(http://localhost:8080/echo?msg=www.mldn.cn),并且参数的名称应该默认使用msg,程序执行后的界面如图2-5所示。

图2-5 echo()方法返回信息
3.【mldnboot-base项目】由于SpringBoot支持Restful风格处理,所以参数的接收可以采用路径参数的形式完成,但是需要在控制器方法的参数声明上使用@PathVariable注解与访问路径的参数进行关联。

本程序需要通过地址传递参数,地址设置为http://localhost:8080/echo/www.mldn.cn,程序显示结果如图2-6所示。

图2-6 通过地址传递参数
提示:关于传递参数的选择。
在Restful架构中请求路径受多类语法支持,开发者可以结合HTTP请求模式(GET、POST、PUT、DELETE等)与路径,实现多种组合,以处理不同类型的用户请求。参数的传递模式可以由开发团队自行定义。