在创建第一个Springboot项目时,我们添加了spring-boot-starter-web,默认集成了Spring MVC框架。Spring MVC是Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,是当今业界最主流的 Web 开发框架。
在 Spring MVC 框架中,Controller 替换 Servlet 来担负控制器的职责,用于接收请求,调用相应的 Model ,在完成业务处理之后,它会调用相应的 View 并对处理结果进行视图渲染,最终客户端得到响应信息。
在com.home.hello下,创建一个Spring MVC的Controller,名字就叫:IndexController,代码清单如下:
package com.home.hello;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class IndexController {
@RequestMapping("/")
@ResponseBody
public String index() {
return "世界最好的程序员,就是那位正在看这行代码的人.";
}
}
运行HelloApplication文件,并在浏览器里输入http://localhost,你就可以看到如下效果了。温馨提示,如果你没在application.properties文件里,添加:server.port=80 这一行内容的话,访问地址为:http://localhost:8080,为了省点力气,建议你加上。
在IndexController类中的@Controller 注解,用于声明这个类的实例是一个控制器。@RequestMapping注解用来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,它可用于类或方法上。用于类上时,表示类中的所有响应请求的方法都以该地址作为父路径。按功能模块划分时,加上这一个特别有用。
在IndexController类上添加@RequestMapping("/home"),此刻在浏览器访问的地址,应该改为:http://localhost/home/
package com.home.hello;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/home")
public class IndexController {
@RequestMapping("/")
@ResponseBody
public String index() {
return "世界最好的程序员,就是那位正在看这行代码的人.";
}
}当返回的数据不是HTML标签的页面,而是其他某种格式的数据时(如JSON、XML等)使用它。
在index()方法中,如果返回的数据不是HTML标签的页面,而是其他某种格式的数据时(如JSON、XML等)的话,加上@ResponseBody注解即可。
如果你掌握更多的注解知识,关注我就对了,一个干了10多年技术总监的老家伙,正在今日头条@老陈说编程, 分享Java和App的干货。