乐趣区

关于spring:Controller-RestController

@Controller在 Spring 中曾经应用很久了,@RestController是在 Spring 4.0 呈现的,它是 @Controller@ResponseBody两个注解的联合。

@Controller

经典的 Spring controller 类会应用 @Controller 注解标注。被 @Controller 标注的类为 @Component 类,并且能够被主动扫描发现。
@Controller注解个别会和 @RequestMapping 注解一起应用。

@Controller
@RequestMapping("books")
public class SimpleBookController {@GetMapping("/{id}", produces = "application/json")
    public @ResponseBody Book getBook(@PathVariable int id) {return findBookById(id);
    }

    private Book findBookById(int id) {// ...}
}

@RespondBody 注解:将办法返回值主动转换为 HttpResponse 对象。

@RestController

@RestController简化了 controller 类的实现,它是 @Controller@RespondBody的联合。

@RestController
@RequestMapping("books-rest")
public class SimpleBookRestController {@GetMapping("/{id}", produces = "application/json")
    public Book getBook(@PathVariable int id) {return findBookById(id);
    }

    private Book findBookById(int id) {// ...}
}

应用了 @RestController@RespondBody 就不再须要了。


The Spring @Controller and @RestController Annotations

退出移动版