답변:
Spring MVC (Model-View-Controller) is a framework that provides a way to build web applications in Java. It is part of the larger Spring Framework and is designed to facilitate the development of web applications by providing a clear separation of concerns. Here are some of the most important annotations used in Spring MVC:
1. @Controller
- Purpose: Indicates that a class serves as a controller in the MVC pattern.
- Usage: It is used to define a controller that handles web requests. Methods within this class can be mapped to specific URLs.
2. @RequestMapping
- Purpose: Maps HTTP requests to handler methods of MVC and REST controllers.
- Usage: Can be applied at the class level or method level to specify the URL pattern and HTTP method (GET, POST, etc.) that the method should handle.
3. @GetMapping
, @PostMapping
, @PutMapping
, @DeleteMapping
- Purpose: Specialized versions of
@RequestMapping
for specific HTTP methods.
- Usage: These annotations simplify the mapping of HTTP GET, POST, PUT, and DELETE requests to handler methods.
4. @PathVariable
- Purpose: Used to extract values from the URI template.
- Usage: Allows you to access path parameters in the URL. For example, in a URL like
/users/{id}
, you can extract the id
value.
5. @RequestParam
- Purpose: Binds request parameters to method parameters in your controller.
- Usage: Used to retrieve query parameters from the URL. For example, in a URL like
/users?name=John
, you can access the name
parameter.
6. @RequestBody
- Purpose: Binds the HTTP request body to a method parameter.
- Usage: Commonly used in RESTful services to convert JSON or XML data from the request body into a Java object.
7. @ResponseBody
- Purpose: Indicates that the return value of a method should be written directly to the HTTP response body.
- Usage: Used in REST controllers to return data (like JSON) instead of a view name.
8. @ModelAttribute
- Purpose: Binds a method parameter or method return value to a named model attribute.
- Usage: Used to populate a model attribute with data from the request, often used in form submissions.
9. @SessionAttributes
- Purpose: Indicates that certain model attributes should be stored in the session.
- Usage: Useful for keeping data across multiple requests in a web session.
10. @ExceptionHandler
- Purpose: Used to handle exceptions thrown by controller methods.
- Usage: Allows you to define a method that will handle specific exceptions and return an appropriate response.
11. @ResponseStatus
- Purpose: Marks a method or exception class with the status code to be returned.
- Usage: Can be used to specify the HTTP status code for a response, such as
@ResponseStatus(HttpStatus.NOT_FOUND)
.
12. @CrossOrigin
- Purpose: Enables Cross-Origin Resource Sharing (CORS) on specific controller methods or classes.
- Usage: Useful for allowing requests from different origins, especially in RESTful APIs.
Summary
These annotations provide a powerful way to define the behavior of your web application in a clear and concise manner. They help in mapping requests to appropriate handlers, managing data binding, and handling exceptions, making Spring MVC a robust framework for building web applications.