1. 程式人生 > >SpringBoot 中 @RestController 和 @Controller 的區別

SpringBoot 中 @RestController 和 @Controller 的區別

book 兩種 col ted method ping wire json 區別

1 - 在springboot中,@RestController 相當於 @Controller + @ResponseBody;
2 - 即在Controller類中,若想返回jsphtml頁面,則不能用@RestController,只能使用@Controller
3 - 若返回的是jsonxml數據,可以有兩種寫法:

1. @RestController註解,然後直接return json數據即可;
2. @Controller註解放類之前,然後若類中某個方法需要返回json數據,則需在該方法前添加@ResponseBody註解;

【示例】:

@RestController
public class BookController { @Autowired private BookRepository bookRepository; /** * 返回所有書籍的信息 * @return */ @RequestMapping(value = "/books", method = RequestMethod.GET) public List<Book> bookList(){ return bookRepository.findAll(); } }
@Controller
public class BookController2 {
    @Autowired
    private BookRepository bookRepository;
    
    /** 
     * 返回所有書籍的信息
     * @return
     */
    @RequestMapping(value = "/books", method = RequestMethod.GET)
    @ResponseBody
    public List<Book> bookList(){
        
return bookRepository.findAll(); } }

SpringBoot 中 @RestController 和 @Controller 的區別