Spring Controller

基本上所以的网页加载都是这样的一个过程。在Spring Boot方案里,一个网页请求到了服务器后,首先我们进入的是Java Web服务器,然后进入Spring Boot应用,最后匹配到某一个Spring Controller ,然后路由到具体某一个Bean的方法,执行完后返回结果,输出到客户端来。

Spring Controller 技术有三个核心:

  • Bean的配置:Controller注解运用
  • 网络资源的加载:加载网页
  • 网址路由的配置:RequestMapping注解运用

首先Controller本身也是一个Spring Bean,需要在类上提供一个@Controller注解

@Controller
public class HelloControl {


}

Spring Boot中我们一般把网页存放在 src/main/resources/static

@Controller
public class HelloControl {

    public String say(){
        return "hello.html";
    }

}

由于resouces属于classpath类型文件,Spring会自动加载,所以返回值只需要写hello.html就可。

当然如果存放在 /resources/static/html 下,则需要 return "html/hello.html";

同时Spring MVC简化了路由配置只需要添加 @RequestMapping 就可以完成路由

@RequestMapping("/hello")
    public String say(){
        return "html/hello.html";
    }

同时,如果想要如下带参数的地址:

https://域名/songlist?id=xxxx

并使其参数传入可以在方法参数上添加 @RequestParam(“xx”) 来表示参数传入 如:

 @RequestMapping("/songlist")
    public String index( @RequestParam("id") String id){
        return "html/songList.html";
    }

这里也可以添加@RequestBody表示前端传递来的JSON数据

如果要输出JSON字符串,可以添加 @ResponseBody 注解如:

@GetMapping("/api/user")
  @ResponseBody
  public User getUser(@RequestParam("id") String id) {
    return users.get(id);
  }