Spring @Controller or @RestController? The Difference You Need to Know

Milena Lazarevic
2 min readJan 1, 2023

The Spring Framework is a popular Java-based application development framework that provides a comprehensive infrastructure support for developing applications in Java.

In Spring, the @Controller and @RestController annotations are used to mark a class as a request handling component. These annotations are used to differentiate the controllers that handle standard web requests and the ones that handle RESTful web services.

The main difference between the @Controller and @RestController annotations is that the @RestController annotation is a specialised version of the @Controller annotation that is used to create RESTful web services. The @RestController annotation combines the functionality of the @Controller and @ResponseBody annotations, which enables it to return data directly to the client.

The @Controller annotation is used to mark a class as a request handling component. This annotation is used to define the methods that handle incoming web requests. The @Controller annotation is used in combination with other annotations, such as @RequestMapping, to specify the URL patterns that the controller can handle.

The @RestController annotation is a specialised version of the @Controller annotation that is used to create RESTful web services. This…

--

--

Milena Lazarevic

Software Engineer| How-To & Guides Writer | Women In Tech Advocate | Master Troll | LinkedIn https://www.linkedin.com/in/milena-lazarevic/