@Controller 与@RestController
@RestController
@RestControllerpublic class HelloSpringBoot {//透过 @RequestMapping 指定从/会被对应到此hello()方法 @RequestMapping("/") public String hello(){ return "Spring Boot 很高兴认识你!"; }
先来认识一下 ,@RestController 主要是用来建置RESTful Web Servic的控制器,透过@RequestMapping("/")
从浏览器进入这个方法
他与@Controller差别在于@Controller最后会回到视图解析器就是我们所知道的Web Page页面,在java中传统的页面都是jsp所组成,但是Spring Boot并没有预设支持.jsp的页面我们要另外做处理
@RestController则是@ResponseBody + @Controller的结合,常见的我们可以返回一个JSON格式的资料给Client
端,就是我们熟悉的RESTful Service常用的传送资料格式。
那要回传Response一个页面的话 Spring Boot支持以下模板引擎
FreeMarker
Groovy
Thymeleaf (Spring官网推荐使用此模板引擎,之后会以此模板引擎作介绍)
Velocity
JSP (Spring Boot官方不推荐使用jsp作为我们的响应页面,STS的页面在src/main/resources下templates 目录,这里是模板文件的预设目录,并没有传统的SpringMVC或SSH架构下中的webapp目录,当然我们可以自己定义)
使用Thymeleaf的模板引擎
在pom.xml加入
在application.properties加入
spring.thymeleaf.prefix=classpath:/templates/
创建一个Controller类
@RequestParam(value="title", required=false, defaultValue="铁人赛 加油!") String title, Model model
@RequestParam去接收请求是否有带入title的name参数
required=false的意思是非必要
defaultValue="铁人赛 加油!" 意思是如果没有则带入铁人赛 加油!
Model:
我这边使用了org.springframework.ui.Model;
去增加了一个Attribute叫做name
将title参数添加到了Model叫做name上
下一步:
添加页面
在src->main->resources->templates
舔加index.html
如果都新增完毕,重启启动Spring Boot application
然后在浏览器输入:
(http://localhost:8080/MyFirstPage )
Spring MVC 传输流程图
閱讀更多 Java高級開發工程師 的文章